一、C++类的三种访问权限
1、公共权限 public
成员:类内可以访问,类外可以访问
任何一种继承,子类可以访问父类的公共成员
2、保护权限 protected
成员:类内可以访问,类外不可以访问
任何一种继承,子类可以访问父类的保护成员
3、私有权限 private
成员:类内可以访问,类外不可以访问。
任何一种继承,子类不可以访问父类的私有成员
二、C++类的三种继承方式
继承语法:class 子类 : 继承方式 父类
注意:私有继承将父类的public、protected变成private类型,而不是无法访问!
虚继承的作用:
虚继承是解决C++多重继承问题的一种手段,从不同途径继承来的同一基类,会在子类中存在多份拷贝。这将存在两个问题:其一,浪费存储空间;第二,存在二义性问题。
三、什么是类内访问?什么是类外访问?
举个例子,假设有如下代码:
class CA
{
public:
int a;
public:
CA(){a = 7;}
};
int main()
{
CA ca;
int b = ca.a;
return 0;
}
当你在main()函数中执行int b = ca.a;这句代码时,是main()函数在访问对象ca的成员变量a,而不是ca自己在访问它自己的成员变量,这就是外部访问。
那么,什么是内部访问呢?比如CA的构造函数CA()本身是对象ca的成员函数,在这个构造函数的内部也在访问a,这就是ca自己在访问自己的成员变量,这就是内部访问。
简单点说就是:
如果是在对象ca的外部,以ca.a的形式来访问ca的成员变量a,这就是外部访问;如果是ca自己的成员函数(包括但不限于它的构造函数)在访问ca自己的成员变量,这就是自己访问自己,是内部访问。