我试图通过它的构造函数初始化基类的一些成员但是我失败了。在下面的代码中,似乎派生类成员message
在调用基础构造函数之前未初始化。
解决方法是Child(string messg_arg) : message(messg_arg), Parent(messg_arg)
,但是有什么方法可以避免这种情况吗?
class Parent
{
protected:
string something;
Parent(string something_arg) : something(something_arg)
{}
}
class Child : public Parent
{
public:
string message;
Child(string messg_arg) : message(messg_arg), Parent(message)
{}
}
答案 0 :(得分:0)
在派生类中的任何成员构造函数之前调用基类构造函数。这应该可以正常工作:
Child(string messg_arg) : Parent(messg_arg), message(messg_arg)
{}