where's the failure?

  • Thread starter Oliver Bleckmann
  • Start date
O

Oliver Bleckmann

seems as if the definition in the header file is ignorred
`setVon' has not been declared
here is the main code and reservation header file
the actual part is commented out and repeated at the end of the program.
i don't see the difference to my working example, except it uses no
header files (a infile class definition instead).
pleas help.

--zimmerverwaltung.cpp--
#include <iostream>
#include <list>
#include "calendar.h"
#include "cgi.h"
#include "guest.h"
#include "hotel.h"
#include "html.h"
#include "room.h"
#include "xml.h"
#include "view.h"
#include "validate.h"
#include "reservation.h"

using namespace std;

list<Guest*> guests;
list<Guest*>::iterator i;
list<Reservation*> reservations;
list<Reservation*>::iterator j;


void cleanUp()
{
for (i = guests.begin(); i != guests.end(); ++i)
delete *i;
for (j = reservations.begin(); j != reservations.end(); ++j)
delete *j;
}

int main(int argc,char *argv[])
{
cout << "Content-type: text/html\n\n"; // MIME Type, Identify for Browser
string query;
char* input;
string meth_s = null_to_empty(getenv("REQUEST_METHOD"));
if (meth_s == "")
{
}
else if (meth_s == "GET")
{
query = null_to_empty(getenv("QUERY_STRING"));
//own
showRequestForm();
}
else if (meth_s == "POST")
{
int len = atoi(getenv("CONTENT_LENGTH"));
input = new char[len+1];
fread(input, 1, len, stdin);
input[len] = 0;
query = input;
delete input;
//own
map<string,string> cgiParam = analyseCgiParam(query);
if
(valReservierung(cgiParam["von_dd"],cgiParam["von_mm"],cgiParam["von_jj"],cgiParam["bis_dd"],cgiParam["bis_mm"],cgiParam["bis_jj"]))
{
// ein Gast
if
(valGast(cgiParam["vorname1"],cgiParam["nachname1"],cgiParam["strasse1"],cgiParam["plz1"],cgiParam["telefon1"],cgiParam["verified1"],cgiParam["persoid1"]))
{
Guest* tmpGuestA = new
Guest(cgiParam["vorname1"],cgiParam["nachname1"],cgiParam["strasse1"],string2Int(cgiParam["plz1"]),string2Int(cgiParam["telefon1"]),string2Bool(cgiParam["verified1"]),string2Int(cgiParam["persoid1"]));
guests.push_back(tmpGuestA);
reservations.push_back
(
new
Reservation(cgiParam["von_dd"],cgiParam["von_mm"],cgiParam["von_jj"],cgiParam["bis_dd"],cgiParam["bis_mm"],cgiParam["bis_jj"],
new
Guest(cgiParam["vorname1"],cgiParam["nachname1"],cgiParam["strasse1"],string2Int(cgiParam["plz1"]),string2Int(cgiParam["telefon1"]),string2Bool(cgiParam["verified1"]),string2Int(cgiParam["persoid1"]))
));
}
// Zwei Gäste
if
((valGast(cgiParam["vorname1"],cgiParam["nachname1"],cgiParam["strasse1"],cgiParam["plz1"],cgiParam["telefon1"],cgiParam["verified1"],cgiParam["persoid1"]))
&&
(valGast(cgiParam["vorname2"],cgiParam["nachname2"],cgiParam["strasse2"],cgiParam["plz2"],cgiParam["telefon2"],cgiParam["verified2"],cgiParam["persoid2"])))
{
Guest* tmpGuestA = new
Guest(cgiParam["vorname1"],cgiParam["nachname1"],cgiParam["strasse1"],string2Int(cgiParam["plz1"]),string2Int(cgiParam["telefon1"]),string2Bool(cgiParam["verified1"]),string2Int(cgiParam["persoid1"]));
guests.push_back(tmpGuestA);
Guest* tmpGuestB = new
Guest(cgiParam["vorname2"],cgiParam["nachname2"],cgiParam["strasse2"],string2Int(cgiParam["plz2"]),string2Int(cgiParam["telefon2"]),string2Bool(cgiParam["verified2"]),string2Int(cgiParam["persoid2"]));
guests.push_back(tmpGuestB);
reservations.push_back
(
new
Reservation(cgiParam["von_dd"],cgiParam["von_mm"],cgiParam["von_jj"],cgiParam["bis_dd"],cgiParam["bis_mm"],cgiParam["bis_jj"],
tmpGuestA,tmpGuestB
));
/*
for(j = reservations.begin(); j != reservations.end(); j++)
{
cout << j->getVon();
}
*/
}
}
}
else
{
}

// this is a repetition of the part above for testing purpose
reservations.push_back(new Reservation ("12","34","56","78","90","12",new
Guest("Olli","Bleck","Hier 1", 4321, 036771234, true, 123456789)));
for(j = reservations.begin(); j != reservations.end(); j++)
{
*j->setVon("10/10/10"); // here is the mismatch: `setVon' has not been
declared
}

cleanUp();
return 0;
}

--reservation.h--

#ifndef __RESERVATION_H__
#define __RESERVATION_H__

using namespace std;

class Reservation
{
private:
char _von[9];
char _bis[9];
Guest* _guestA;
Guest* _guestB;
public:
Reservation() // Default Konstuktor ruft immer erst Superkonstruktor auf
{
_strdate( _von ); // Tagesreservierung
_strdate( _bis );
_guestA = NULL;
_guestB = NULL;
}
Reservation(string von_dd, string von_mm,string von_jj,string
bis_dd,string bis_mm, string bis_jj, Guest* guestA) // Konstruktor, ist
immer zu implementieren
{
strcpy( _von, (von_dd + "/" + von_mm + "/" + von_jj).c_str());
strcpy( _bis, (bis_dd + "/" + bis_mm + "/" + bis_jj).c_str());
_guestA = guestA;
_guestB = NULL;
}
Reservation(string von_dd, string von_mm,string von_jj,string
bis_dd,string bis_mm, string bis_jj, Guest* guestA, Guest* guestB) //
Konstruktor, ist immer zu implementieren
{
strcpy( _von, (von_dd + "/" + von_mm + "/" + von_jj).c_str());
strcpy( _bis, (bis_dd + "/" + bis_mm + "/" + bis_jj).c_str());
_guestA = guestA;
_guestB = guestB;
}
virtual ~Reservation() // Pflicht genau einen virtuellen Destruktor!
{
// Composita freigeben????
}
virtual string getVon() const
{
return _von;
}
virtual void setVon(string von)
{
strcpy( _von, von.c_str());
}
virtual string getBis() const
{
return _bis;
}
virtual void setBis(string bis)
{
strcpy( _von, bis.c_str());
}
virtual Guest* getGuestA() const
{
return _guestA;
}
virtual void setGuestA(Guest* guestA)
{
_guestA = guestA;
}
virtual Guest* getGuestB() const // Accessormethoden beginnen mit get,
dann const, sind virtual, klein
{
return _guestB;
}
virtual void setGuestB(Guest* guestB) // Accessormethoden beginnen mit
set, sind virtual, klein
{
_guestB = guestB;
}
};


#endif
 
D

David Harmon

On Mon, 4 Dec 2006 00:26:33 +0100 in comp.lang.c++, "Oliver Bleckmann"
*j->setVon("10/10/10"); // here is the mismatch: `setVon' has not been
declared

Operator precedence problem.

(*j)->setVon("10/10/10");
 
O

Oliver Bleckmann

David Harmon said:
On Mon, 4 Dec 2006 00:26:33 +0100 in comp.lang.c++, "Oliver Bleckmann"


Operator precedence problem.

(*j)->setVon("10/10/10");

seems to work thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top