关于 public、protected、private 三种继承方式的对比:
1.类的一个特征就是封装,public 和 private 作用就是实现这一目的。所以:
用户代码(类外)可以访问 public 成员而不能访问 private 成员;private 成员只能由类
成员(类内)和友元访问。
2.类的另一个特征就是继承,protected 的作用就是实现这一目的。所以:
protected 成员可以被派生类对象访问,不能被用户代码(类外)访问。
三种继承方式:
三种继承方式标注的成员变量都可以被类内的成员函数访问,但是对于类外的
函数稍有差别;
#include<iostream>
#include<assert.h>
using namespace std;
class A{
public:
int a;
A(){
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;
};
int main(){
A itema;