面试题答案
一键面试- 解决方案思路:
- 由于
basePrivate
是Base
类的私有成员,直接在Derived
类中无法访问。一种常见的方法是在Base
类中提供一个公共的访问器(getter)函数,然后在Derived
类中可以调用这个公共函数来间接获取basePrivate
的值。
- 由于
- 代码示例:
class Base {
private:
int basePrivate;
public:
Base(int val) : basePrivate(val) {}
// 添加公共访问器函数
int getBasePrivate() const {
return basePrivate;
}
};
class Derived : public Base {
public:
Derived(int val) : Base(val) {}
};
void outerFunc(Derived& d) {
int value = d.getBasePrivate();
// 在这里可以对获取到的basePrivate的值进行处理
}
在上述代码中:
Base
类中添加了getBasePrivate
函数,它是一个公共成员函数,用于返回basePrivate
的值。Derived
类继承自Base
类,并且可以调用Base
类的公共成员函数getBasePrivate
。- 在
outerFunc
函数中,通过Derived
类对象d
调用getBasePrivate
函数,从而获取到Base
类中basePrivate
的值。