成员访问级别

public---成员可以由任何代码访问

private-成员只能由类中的代码访问(如果没有使用关键字,就默认使用这个关键字)

internal--成员只能由定义它的程序集(项目)内部的代码访问。

protected--成员只能由类或派生类中的代码访问。

protected internal 成员只能由项目(更确切的讲,是程序集)中派生类的代码来访问。
### C++ 中的访问级别概述 C++ 提供了三种主要的访问控制级别,分别是 `public`、`protected` 和 `private`。这些关键字用于定义类成员(变量或方法)的可见性和可访问性。 #### 访问修饰符的作用 - **Public**: 类中的公共成员可以被任何外部对象或函数访问[^3]。 - **Private**: 私有成员仅限于类内部访问,无法通过类的对象直接调用[^3]。 - **Protected**: 受保护的成员类似于私有成员,但在派生类中也可以被访问[^3]。 以下是每种访问级别的具体说明以及代码示例: --- ### Public 访问级别 当某个成员声明为 public 时,它可以在程序的任何地方被访问。 ```cpp class Example { public: void display() { std::cout << "This is a public method." << std::endl; } }; int main() { Example obj; obj.display(); // Accessible from outside the class return 0; } ``` 上述代码展示了如何创建一个具有公有方法的类实例并调用该方法[^3]。 --- ### Private 访问级别 如果某成员设置为 private,则只有同一类内的其他成员才能访问它。 ```cpp #include <iostream> using namespace std; class Secret { private: string hiddenMessage = "This message is secret."; public: void revealSecret() { cout << hiddenMessage << endl; // Internal access allowed } }; int main() { Secret s; s.revealSecret(); // Cannot directly access 'hiddenMessage' here as it's private. return 0; } ``` 此例子表明即使隐藏的消息存储在类内,也无法从外部直接读取[^3]。 --- ### Protected 访问级别 受保护的成员对于其所在类及其子类都是可用的,但对于外界则不可见。 ```cpp #include <iostream> using namespace std; class Base { protected: int value; public: Base(int v) : value(v) {} }; class Derived : public Base { public: Derived(int v) : Base(v) {} void showValue() { cout << "The protected value is: " << value << endl; // Allowed within derived class } }; int main() { Derived d(42); d.showValue(); // The following line would cause an error since 'value' is not accessible externally. // cout << d.value << endl; return 0; } ``` 这里演示了一个基类将其数据成员设为 protected 的情况,在继承关系下允许子类对其进行操作[^3]。 --- ### 总结 合理运用这三者能够有效管理封装原则下的权限分配问题,从而增强软件设计的安全性和模块化程度。以上就是关于 C++ 中不同访问限定符的基础介绍及其实现方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值