qq_43209605
qq_43209605
2018-11-27 12:22

我是C++初学者,有人能解答一下关于多继承的问题吗

  • c++
  • 首次访问

class A {
public:
void setA(int);
void showA() const;
private:
int a;
};
class B {
public:
void setB(int);
void showB() const;
private:
int b;
};
class C : public B, private A {
public:
void setC(int, int, int);
void showC() const;
private :
int c;
};
void A::setA(int x) {
a = x;
}
void B::setB(int x) {
b = x;
}
void C::setC(int x, int y, int z) {

setA(x);
setB(y);
c = z;

}
int main() {
C obj;
obj.setB(6);
obj.showB();
obj.setA(5);
obj.showA();
obj.setC(6, 7, 9);
obj.showC();

return 0;

}

严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0265 函数 "A::setA" (已声明 所在行数:22) 不可访问 尝试2 C:\Users\asus\Desktop\尝试2\尝试2\源.cpp 38

严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0265 函数 "A::showA" (已声明 所在行数:4) 不可访问 尝试2 C:\Users\asus\Desktop\尝试2\尝试2\源.cpp 39

请问为什么会报这个错误。而当我颠倒了C的继承顺序,先继承A再继承B,就会报B的错误,这是为什么,有人能详细地跟我解释一下吗,谢谢

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答