犯了一个很小错误,此处作为记录。是关于C++初始化列表的。
先做场景实例(就是这么个意思):
class Worker
{
public:
Worker(int val);
Worker();
protected:
int val;
}
Worker::Worker(int givenVal)
:val(givenVal)
{}
子类:
class ChildWorker : public Worker
{
ChildWorker();
ChildWorker(int givenVal);
}
ChildWorker::ChildWorker(givenVal)
: val(givenVal)
{}
但是系统会报错:提示ChildWorker非法的成员初始化,val不是基或者成员
报错的原因是派生类不能直接在初始化列表中初始化基类的成员。而是应该采用如下方法:
ChildWorker::ChildWorker(int givenVal)
: Worker(giveVal)
{}