)C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。 讲讲C++这三种东西
时间: 2024-12-10 09:42:52 浏览: 15
在C++中,类(Class)与C的结构体(Struct)相似,但引入了更多的访问控制特性,即`public`、`private`和`protected`。这些关键字用于定义类成员的可见性和可访问性:
1. **Public**[^1]:
- 公有成员(Public Members)是对其他类完全开放的,无论是类的对象还是从外部。例如,在Base类中,`m_public`和`public_fun()`都是公有的,可以无限制地在类的实例上直接访问。
```cpp
void Base::public_fun() {
cout << m_public << endl;
}
```
2. **Protected**:
- 受保护成员(Protected Members)仅对外部派生类可见,但在基类内部以及其自身是可以访问的。`m_protected`和`protected_fun()`就是这种类型的成员,它们不能被类之外的代码直接访问,但在派生类中可以。
3. **Private**:
- 私有成员(Private Members)是完全隐藏的,只在类的内部可见,既不允许外部访问,也不允许派生类直接访问。如`m_private`和`private_fun()`,外部代码无法直接操作它们。
```cpp
void Base::private_fun() {
cout << m_private << endl; // 这里只能在类内部访问
}
```
总结来说,C++的访问控制有助于维护类的封装性,使得开发者能够更好地控制数据的访问和修改,提高代码的安全性和可维护性。
阅读全文