所谓访问控制,就是C++提供一种用来保护类里面的方法和属性的手段。
其实这里的保护的意思是对谁可以调用某个方法或者某个属性加上一个限制。
例如:
class Base //类
{
public: //加上限制
int a;
protected:: //加上限制
int b;
private: //加上限制
int c;
}
a是可以又Base实例化的对象访问的,而b和c是不行的
Base kk;
kk.a; //可以访问
kk.b; //不可以访问
kk.c; //不可以访问
如果某个对象试图调用一个它无权访问的函数,编译器将会报错。
C++的访问级别有三种,分别是public(公有继承)、protected(保护继承)、private(私有继承)。
public(公有继承):任何代码都可以访问
protected(保护继承):这个类本身或者它的子类可以访问
private(私有继承):只有这个类本身可以访问
class Base {
public:
int a;
//方法可以访问所有成员
void f1() {
cout << a << endl;
}
void f2() {
cout << b << endl;//这个类(Base)本身或者它的子类可以访问
}
void f3() {
cout << c << endl;//只有这个类(Base)本身可以访问
}
protected:
int b;
private:
int c;
}
利用访问级别来保护类里的方法和属性很简单,只要在类里的某个地方写出一个访问级别并在其后加上一个冒号,从那个地方开始往后的所有方法或者属性都将受到相应的保护。直到遇到下一个访问级别或者到达这个类的末尾为止。
在同一个类定义里可以使用多个public(公有继承)、protected(保护继承)、private(私有继承)。但是最好把你的元素集中到一个地方,这样代码的可读性会好很多。
在编写我们类定义代码时候,应该从public :开始写起。然后时 protected : 、最后是 private : 。 这样子的好处是增加程序的可读性。