C++访问限制

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。

五、继承与访问权限

派生类可以访问基类中可访问成员。

六、结构体默认公有

结构体默认所有成员公有。

正确使用访问权限对软件封装极为重要。合理的访问控制可以编写出安全、可靠的程序。