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++ ..
_myChild(childName);
Child _myChild(childName);
Thanks for any advice..
Like this:
class Owner
{
private: // Fields
Child _myChild1;
public: // Constructors
Owner();
Owner(const char childName[]);
};
Owner::Owner()
:_myChild1("Default Name")
{}
Owner::Owner(const char childName[])
:_myChild1(childName)
{}
// Without more info about what you are doing it is hard to tell
// But a trivial change could be
Owner::Owner()
// Child defautl constructor called here
{
// Do processing.
_myChild1.updateName(name);
}
Owner::Owner(const char childName[])
// Child defautl constructor called here
{
// Do processing.
_myChild1.updateName(std::string("X") + childName);
}
The question is what kind of processing do you need done before the child.
As a side not:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With