6-2 私有继承派生类使用基类的成员函数
时间: 2023-04-28 16:03:24 浏览: 109
私有继承派生类可以使用基类的成员函数,但是只能在派生类内部使用,外部无法访问。私有继承会将基类的公有和保护成员变成派生类的私有成员,因此派生类可以使用基类的成员函数,但是不能直接访问基类的公有和保护成员。
相关问题
公有继承派生类怎么访问基类私有成员
在公有继承中,基类的私有成员是不能被派生类直接访问的。但是,可以通过在基类中提供公有的成员函数来实现对私有成员的访问。具体的做法是在基类中声明一个公有成员函数,用于返回私有成员的值,并在派生类中调用这个公有成员函数来访问基类的私有成员。
例如,假设有一个基类`BaseClass`,其中包含私有成员变量`m_private_var`,可以在基类中声明一个公有的成员函数`getPrivateVar`,用于返回`m_private_var`的值:
```
class BaseClass {
private:
int m_private_var;
public:
int getPrivateVar() const {
return m_private_var;
}
};
```
然后,在派生类中可以通过调用`BaseClass`的`getPrivateVar`函数来访问`m_private_var`:
```
class DerivedClass : public BaseClass {
public:
void someFunction() {
int privateVarValue = getPrivateVar();
// 使用 privateVarValue
}
};
```
注意,这里的`getPrivateVar`函数必须是公有的,否则派生类无法调用它,也无法访问基类的私有成员。
派生类对基类成员的访问
在面向对象编程中,派生类可以继承基类的成员,包括成员函数和成员变量。当派生类继承了基类的成员后,可以通过派生类的对象来访问这些成员。
在C++中,派生类可以直接访问基类的公有成员和保护成员,但不能直接访问基类的私有成员。可以通过基类的公有和保护成员函数来访问基类的私有成员。需要注意的是,访问基类成员时,需要使用作用域解析运算符"::"来指定基类成员所在的类。
另外,如果派生类中定义了与基类同名的成员函数或成员变量,那么派生类中的同名成员将会覆盖基类的同名成员。如果需要访问基类的同名成员,可以使用作用域解析运算符"::"来指定基类成员所在的类。