【问题标题】:Inaccessible inherited public property [duplicate]无法访问的继承公共财产[重复]
【发布时间】:2015-10-07 08:26:50
【问题描述】:

我尝试用一​​些类制作一个基本的 C++ 程序,但遇到了问题。程序如下:

#include<iostream>
using namespace std;

class A {
public:
    int i;
    A(int ai) {this->i = ai;}
    A() {}
};

class B : A {
public:
    A aa;
    B(A &a) : A(a.i) {
        aa = a;
    }
};

int main()
{
    A a(5);
    B b(a);

    cout << "Hello World!" << b.i;
    return 0;
}

程序编译失败:

In function 'int main()':
Line 6: error: 'int A::i' is inaccessible
compilation terminated due to -Wfatal-errors.

但变量iA 类中是公共的。我做错了什么?

【问题讨论】:

    标签: c++


    【解决方案1】:

    你正在私下继承A

    class B : A {
           ^^^^^^
    

    您需要公开继承A

    class B : public A {
           ^^^^^^^^^^^^^
    

    【讨论】:

      最近更新 更多