c++派生类访问基类成员
时间: 2024-10-25 22:12:05 浏览: 52
在C++中,派生类可以访问基类的成员,主要有以下几种情况:
1. **公共成员**(Public Members):如果基类的成员声明为public,那么派生类可以直接通过基类的对象引用访问这些成员,无需使用作用域解析运算符 `::`。
```cpp
class Base {
public:
int value;
};
class Derived : public Base {
};
Derived d;
d.value = 42; // 直接访问基类的public成员
```
2. **保护成员**(Protected Members):基类的protected成员对派生类也是可见的,但是仅限于在同一包内的派生类。同样,不需要作用域解析运算符。
```cpp
class Base {
protected:
int protectedValue;
};
class Derived : public Base {
};
Derived d;
d.protectedValue = 42; // 可以访问,但在不同包中不可见
```
3. **私有成员**(Private Members):虽然基类的private成员在默认情况下对外部是隐藏的,但如果派生类需要访问,可以使用`friend`关键字或者虚拟继承(virtual inheritance)间接访问。
```cpp
class Base {
private:
int privateValue;
};
class Derived : public Base { // 使用virtual继承可以访问基类的private成员
friend class Derived; // 或者通过友元访问
void accessBase() {
privateValue = 42; // 友元或virtual继承允许访问
}
};
```
阅读全文
相关推荐
















