c – 错误C2614:’ChildClass’:非法成员初始化:’var1’不是
发布时间:2020-12-16 05:31:46 所属栏目:百科 来源:网络整理
导读:我在C中收到以下错误: error C2614: ‘ChildClass’ : illegal member initialization: ‘var1’ is not a base or member Class Base { protected: int var1;public: Base() { var1=0; }}class Child : public Base{ int chld; public: Child() : var1(0)
我在C中收到以下错误:
Class Base { protected: int var1; public: Base() { var1=0; } } class Child : public Base { int chld; public: Child() : var1(0) { chld=1; } } 我觉得我所做的是按照OO协议. 不明白为什么我收到错误? 谢谢. 解决方法
错误消息为您提供的确切原因不起作用:您只能使用具有直接成员或基类的初始化程序列表.
在你的情况下,你甚至不需要初始化var1,因为Base :: Base()将被Child的构造函数调用,这将把var1设置为0. 如果你想要一个不同的值,那么你必须重载Base构造函数并明确地调用它: class Base { protected: int var1; public: Base() : var1(0) { } Base(int x) : var1(x) { } }; class Child:public Base { int chld; public: Child(): Base(42),chld(1) { } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |