C++通过访问权限控制来实现封装和数据隐藏,可以将类成员设置为公有,私有或保护。
一、public公有访问权限
public表示所有对象都可以访问类成员:
class Person {
public:
string name; // 公有访问
};
Person p;
p.name = "John"; // 正确,公有成员
二、private私有访问权限
private表示只有类对象和友元可以访问成员:
class Person {
private:
int age;
};
Person p;
p.age = 20; // 错误,private只允许类内访问
三、protected保护访问权限
protected表示只有派生类对象可以访问成员:
class Person {
protected:
int age;
};
class Student: public Person {
void func() {
age = 18; // 正确,Student可以访问protected
}
};
四、访问原则
访问权限从严格到宽松依次是:private、protected、public。
五、继承与访问权限
派生类可以访问基类中可访问成员。
六、结构体默认公有
结构体默认所有成员公有。
正确使用访问权限对软件封装极为重要。合理的访问控制可以编写出安全、可靠的程序。