Arrays i klasser - igen
Jeg har stadig lidt problemer med arrays i klasser. Denne gang drejer det sig om at få lagt to objekter ind i et array på en klasse, give dem værdier og bagefter skrive dem til skærmen. Eksempelvis har jeg en klasse Building:class Building
{
private:
string name;
string description;
int hitpoints;
int nmbr_people;
Technology *required_technology;
public:
Building(string name);
Building();
~Building();
void setName(string newName);
void setDescription(string newDescription);
void setHitpoints(int newAmount);
void setNumberOfPeople(int newAmount);
void setRequiredTechnology(Technology *newTechnology);
string getName();
string getDescription();
int getHitpoints();
int getNumberOfPeople();
Technology getRequiredTechnology();
};
Jeg har også en klasse technology som ser således ud:
class Technology
{
private:
string name;
string description;
public:
// class constructor
Technology();
Technology(string newName, string newDescription);
// class destructor
~Technology();
void setName(string newName);
void setDescription(string newDescription);
string getName();
string getDescription();
};
Problemet er at der skal to objekter af typen Technology knyttes til Building objektet (bare to med hvert sit navn). Når jeg gør dette vil jeg gerne lave dette nummer i min main:
int main(int argc, char *argv[])
{
//opret bygningsobjektet
Building minBuilding("House");
...
//Opret Technology objektet
Technology minTechnology, andenTechnology;
minTechnology.setName("Rope working");
minTechnology.setDescription("Basic knowledge about ropes");
Technology minAndenTechnology();
andenTechnology.setName("Plant knowledge");
andenTechnology.setDescription("Basic knowledge about plants");
//Tilføj Technology til Building
minBuilding.setRequiredTechnology(&minTechnology);
minBuilding.setRequiredTechnology(&andenTechnology);
//Her går det vel galt???
//Udskriv de forskellige attributter
...
cout<<"Technology"<<endl;
cout<<" |-Name: "<<minBuilding.getRequiredTechnology().getName()<<endl;
cout<<" |-Name: "<<minBuilding.getRequiredTechnology().getName()<<endl;
return 0;
}
Mit spørgsmål er nu, hvordan skal jeg modellere min klasse implementation samt min header fil, og hvordan får jeg de to forskellige skrevet til skærmen....håber det er forståeligt, på forhånd tak.