在c++中,派生类以私有方式继承,派生类中的成员函数不可以调用基类中公有函数吗 
时间: 2023-05-25 15:05:55 浏览: 41
是的,在C语言中实现面向对象编程时,派生类以私有方式继承基类时,基类中的公有函数就变成了派生类的私有成员,因此派生类中的成员函数无法直接调用基类中的公有函数。只有通过派生类中的其他成员函数间接调用基类中的公有函数,或者使用友元函数来访问基类中的公有函数。
相关问题
继承类访问基类私有成员
在C++中,派生类是不能直接访问基类的私有成员的。这是因为私有成员只能在基类内部访问,对于派生类和其他类来说都是不可见的。
但是,可以使用公有或保护成员函数来访问基类的私有成员。通过将这些函数定义在基类中,派生类可以通过调用这些函数来访问基类的私有成员。
例如,假设有一个基类A和一个派生类B,A中有一个私有成员变量x,B想要访问这个私有成员变量x。可以在A中定义一个公有成员函数getX()来获取x的值,然后在B中调用这个函数。
代码示例:
```c++
class A {
private:
int x;
public:
int getX() { return x; }
};
class B : public A {
public:
void printX() { cout << "x = " << getX(); }
};
int main() {
B objB;
objB.printX(); // 输出 x 的值
return 0;
}
```
在上面的例子中,B类继承自A类,并且通过调用A类中的getX()函数来获取私有成员变量x的值,并在B类的printX()函数中输出x的值。
这道题要求你用C++语言创建一个图书类和一个派生类,其中图书类至少要包含一个构造函数、析构函数、复制构造函数和静态成员函数。派生类继承自图书类,至少要包含一个构造函数和析构函数。你可以使用公有继承、保护继承或私有继承之一。在程序中,你还要使用多态,可以通过编写虚函数、函数重载或运算符重载之一来实现。 在主函数中,你要创建图书类和派生类的对象,并调用它们的成员函数。你还要使用动态对象或数组。最后,你要在程序中编写操作菜单,使用户能够通过菜单使用程序。直接开始编程
这道题要求你在 C 语言中创建一个基类 `Book` 和一个派生类,在 `Book` 类中至少要包含一个构造函数、析构函数、复制构造函数和静态成员函数。派生类继承自 `Book` 类,至少要包含一个构造函数和析构函数。你可以使用公有继承、保护继承或私有继承之一。在程序中,你还要使用多态,可以通过编写虚函数、函数重载或运算符重载之一来实现。在主函数中,你要创建 `Book` 类和派生类的对象,并调用它们的成员函数。你还要使用动态对象或数组。最后,你要在程序中编写操作菜单,使用户能够通过菜单使用程序。
相关推荐












