加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 覆盖父类的私人成员

发布时间:2020-12-16 09:38:20 所属栏目:百科 来源:网络整理
导读:鉴于以下类别: class foo{private: int c;public: foo( int a = 42 ) { c = a; } ~foo();};class bar: public foo{public: bar(); ~bar();}; 如何使用不同的数字制作条形覆盖?我可以这样做吗? bar::bar() { c = 12;} 我在尝试编译时遇到此错误: test.cpp
鉴于以下类别:

class foo
{
private:
    int c;

public:
    foo( int a = 42 ) { c = a; }
    ~foo();
};

class bar: public foo
{
public:
    bar();
    ~bar();
};

如何使用不同的数字制作条形覆盖?我可以这样做吗?

bar::bar() 
{
    c = 12;
}

我在尝试编译时遇到此错误:

test.cpp: In constructor ‘bar::bar()’:
test.cpp:8:7: error: ‘int foo::c’ is private

解决方法

在构造函数初始化列表中调用基类的构造函数:

bar::bar()
  : foo(12)
{ }

顺便说一句,你应该总是更喜欢在构造函数体内使用构造函数初始化列表而不是赋值,所以你的foo构造函数会更好地写成:

foo( int a = 42 ) : c(a) { }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读