https://blog.csdn.net/sinat_30071459/article/details/53748588
C++中的继承方式有:
public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。
(1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。
(2)private(私有继承):继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。
(3)protected(保护性继承):继承时基类中各成员属性均变为protected,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。
如果缺省,默认为private继承。
派生类对象要访问基类成员,必须在成员函数名前加上范围(类名::),这也适用于基类的成员变量。——C++派生类中调用基类成员
代码示例:
#include <iostream>
using namespace std;
class A{
public:
int i=5;
virtual void fun(){
cout<<"A:fun()"<<endl;
}
};
class B :public A{
public:
int i=6;
void fun(){
cout<<"B:fun()"<<endl;
}
};
int main() {
cout << "hello https://tool.lu/" << endl;
A * pb = new B();
pb->fun();
cout<<pb->i<<endl;
B * b = new B();
cout<<b->A::i<<endl;
cout<<b->i<<endl;
b->A::fun();
return 0;
}
结果:
hello https://tool.lu/
B:fun()
5
5
6
A:fun()
网友评论