C++之共有继承、保护继承、私有继承
标签:main 对象 vat 类对象 分享 protected info ted prot
1.封装,public,private作用就是这个目的。
类外只能访问public成员而不能方位private成员;
private成员只能被类成员和友元访问;
2.继承,protected的作用就是这个目的;
protected成员可以被子类对象访问,但不能被类外的访问;
3.公有继承:class A : public B
#include
#include
using namespace std;
class A{
public:
int a;
A(){
a1 = 1;
a2 = 2;
a3 = 3;
a = 4;
}
void fun(){
cout //正确
cout //正确
cout //正确
cout //正确
}
public:
int a1;
protected:
int a2;
private:
int a3;
};
class B : public A{
public:
int a;
B(int i){
A();
a = i;
}
void fun(){
cout //正确,public成员
cout //正确,基类的public成员,在派生类中仍是public成员。
cout //正确,基类的protected成员,在派生类中仍是protected可以被派生类访问。
cout //错误,基类的private成员不能被派生类访问。
}
};
int main(){
B b(10);
cout endl; //正确
cout //正确
cout //错误,类外不能访问protected成员
cout //错误,类外不能访问private成员
system("pause");
return 0;
}
4.保护继承
#include
#include
using namespace std;
class A{
public:
int a;
A(){
a1 = 1;
a2 = 2;
a3 = 3;
a = 4;
}
void fun(){
cout //正确
cout //正确
cout //正确
cout //正确
}
public:
int a1;
protected:
int a2;
private:
int a3;
};
class B : protected A{
public:
int a;
B(int i){
A();
a = i;
}
void fun(){
cout //正确,public成员。
cout //正确,基类的public成员,在派生类中变成了protected,可以被派生类访问。
cout //正确,基类的protected成员,在派生类中还是protected,可以被派生类访问。
cout //错误,基类的private成员不能被派生类访问。
}
};
int main(){
B b(10);
cout //正确。public成员
cout //错误,protected成员不能在类外访问。
cout //错误,protected成员不能在类外访问。
cout //错误,private成员不能在类外访问。
system("pause");
return 0;
}
5.私有继承
#include
#include
using namespace std;
class A{
public:
int a;
A(){
a1 = 1;
a2 = 2;
a3 = 3;
a = 4;
}
void fun(){
cout //正确
cout //正确
cout //正确
cout //正确
}
public:
int a1;
protected:
int a2;
private:
int a3;
};
class B : private A{
public:
int a;
B(int i)
{
A();
a = i;
}
void fun(){
cout //正确,public成员。
cout //正确,基类public成员,在派生类中变成了private,可以被派生类访问。
cout //正确,基类的protected成员,在派生类中变成了private,可以被派生类访问。
cout //错误,基类的private成员不能被派生类访问。
}
};
int main(){
B b(10);
cout //正确。public成员
cout //错误,private成员不能在类外访问。
cout //错误, private成员不能在类外访问。
cout //错误,private成员不能在类外访问。
system("pause");
return 0;
}
总结:
protected,是指子类可以访问类成员,但是不能被外部访问;
C++之共有继承、保护继承、私有继承
标签:main 对象 vat 类对象 分享 protected info ted prot
原文地址:https://www.cnblogs.com/weiyouqing/p/9648563.html
评论