南京门户网站网站关键词优化排名
前言
在C++中,访问控制修饰符(Access Control Modifiers)用于控制类的成员(成员变量和成员函数)的访问权限。这些修饰符分为三种:public、protected和private。它们定义了成员可以在何处访问,具体如下:
public:
public成员在类内部和外部都是可访问的。
这意味着任何地方都可以直接访问类的public成员。
protected:
protected成员在类内部可访问,但在类外部是不可访问的。
子类(派生类)可以访问其父类的protected成员。
private:
private成员只能在类的内部访问,对外部是隐藏的。
不能被类的子类访问。
下面是一个示例,说明这些访问控制修饰符的使用:
#include <iostream>class MyClass {
public:int publicVar; // public 成员void PublicMethod() {std::cout << "Public method." << std::endl;}protected:int protectedVar; // protected 成员void ProtectedMethod() {std::cout << "Protected method." << std::endl;}private:int privateVar; // private 成员void PrivateMethod() {std::cout << "Private method." << std::endl;}
};// 上面 三种权限在这个类里面都是可以访问的class MyDerivedClass : public MyClass {
public:void AccessProtected() {protectedVar = 42; // 子类可以访问父类的 protected 成员ProtectedMethod(); // 子类可以调用父类的 protected 方法}
};int main() {MyClass myObj;myObj.publicVar = 10; // 可以直接访问 public 成员myObj.PublicMethod(); // 可以调用 public 方法// 下面的代码无法通过编译,因为 protectedVar 和 ProtectedMethod 是 protected 的// myObj.protectedVar = 20;// myObj.ProtectedMethod();MyDerivedClass derivedObj;derivedObj.AccessProtected(); // 子类可以访问 protected 成员和方法return 0;
}
总结起来,访问控制修饰符允许你控制类的成员对外部的可见性和可访问性,从而实现封装的概念,隐藏类的内部实现细节并提供合适的访问接口。