我有A级和B级。
class A{
public:
foo();
};
class B : public A{
public:
int x;
};
假设测试文件中有一个来自B类的对象。我应该如何调用foo函数?
object.foo(); // or
object.A::foo();
其他问题: 我们什么时候调用这样的函数?如果我做多重继承怎么办?
答案 0 :(得分:3)
只需object.foo()
,就可以添加更多内容:
B object;
object.foo();
答案 1 :(得分:1)
B类继承A类的公共成员,因此函数foo()
也属于B类,可以使用B类的对象调用。
B b;
b.foo();
你需要知道inheritance in c++.它与
相同b.x;
请参阅x
和foo()
两者都是对象b
的成员,即使b
是B类的对象也是可能的,因为B类继承功能来自A类,在您的代码函数foo()
。
注意 A类只有一个成员函数foo()
A a;
a.foo();
有效,但
a.x;
无效
编辑:多级继承C类继承B类,B类继承A类,然后
class C : public B{
public:
int y;
};
C c;
c.foo(); // correct
也有效。
并且
c.x;
c.y;
同样有效,x
,y
,foo()
都是C类成员。
注意:我告诉你的是多级Multiple inheritance in C++是不同的。在继承的情况下,C ++中的三个访问说明符也非常重要:public private protected in c++