-
Passing classes question
I have the following, rather stupid question
I made a parent class called "Space" with a name (eg. sun) and a weight (float).
Then i made a child class called "Planet" with a datamember "Space turnaround" (example, the earth-planet turns around the sun-space)
I made a constructor :
Code:
Planet(char*="",float=0.0,Space);
a getTurnaround function :
Code:
Space & getTurnaround (void) const;
now my problem is, i don't know how I should write the Planet-constructor. I was thinking something like :
Code:
Planet::Planet(d):Space(n,f)
{
name= new char[strlen (n) +1];
strcpy(name,n);
weight= f;
turnaround= d; //would requere a friend operator= if im not mistaking
}
and for the getTurnaround :
Code:
Space Planet::getTurnaround(void) const
{
return turnaround;
}
But I expect a lot of mistakes in this, since this is my first experience with passing classes.
Hope someone can help.
-
What is name*=""?
I've heard of char and LPSTR. What is name*=""? Besides, default-parametres must be assigned from right to left, I think.
-
was a typo :)
I was translating it from Dutch and apparantly I made a mistake there
hope this makes more sence
-
You can try something like this. I don't use initialization lists when using constructors that contain strings because I always get confused as to how to do it. I write it out like this:
Code:
struct Space
{
char name[80];
};
struct Planet
{
Planet(Space, char *, float);
//you need a default and copy constructor if you declare a
//non default constructor
float weight;
char name[80];
Space space
};
//default null string for _name and default 0.0 for wt, no default
//for _space
Planet::Planet(Space _space, char _name[80] = {'\0'}, float wt = 0.0)
{
stcpy(name, _name);
space = _space;
weight = wt;
}