C++类的继承方式

1.public 继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:public, protected, private

2.protected 继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:protected, protected, private

3.private 继承:基类 public 成员,protected 成员,private 成员的访问属性在派生类中分别变成:private, private, private

#include <iostream>
//私有的继承方式

using namespace std;

class A{
public:
	int a;
	A(){}
	A(int i){
		a1 = 1;
		a2 = 2;
		a3 = 3;
		a = 4;
	}
	void fun(){
		cout << a << endl;    //正确
		cout << a1 << endl;   //正确
		cout << a2 << endl;   //正确
		cout << a3 << endl;   //正确
	}
public:
	int a1;
protected:
	int a2;
private:
	int a3;
};
class B : private A{//默认为private
public:
	int a;
	B(int i){
		A(2);
		a = i;
	}
	void fun(){
		cout << a << endl;       //正确,public成员。
		cout << a1 << endl;       //正确,基类public成员,在派生类中变成了private,可以被派生类访问。
		cout << a2 << endl;       //正确,基类的protected成员,在派生类中变成了private,可以被派生类访问。
		//cout << a3 << endl;       //错误,基类的private成员不能被派生类访问。
	}
};
int main()
{
	B *b = new B(2);
	cout << b->a << endl;
	
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43340991/article/details/86659908