I have this definition in a header file:
class Owner
{
private:
// Fields
Child* _myChild1;
public:
// Constructors
Owner();
Owner(const char childName[]);
};
and this implementation:
Owner::Owner(const char childName[])
{
//do some operations - children must be created after these ops
_myChild = new Child(childName);
}
and this main() function:
int main()
{
Owner("child1");
}
Some questions, and please bear with me here, I'm just starting out with C++ ..
- Given that the child classes are known at compile time am I right in thinking that I don't need to create them with 'new' on the heap? If so how? I have tried using this syntax in the Owner implementation but the compiler moans ('term does not evaluate to a function..'):
_myChild(childName);
- However, using this syntax in the implementation is ok, why?
Child _myChild(childName);
- Is the paradigm that I'm using correct? In other words, as a general rule, if one class wraps another does the owner only ever hold pointers to the classes it wraps?
- How would you more experienced guys do it?
Thanks for any advice..