首页 > 试题广场 >

在下列关于类的继承描述中,正确的是()。

[单选题]

在下列关于类的继承描述中,正确的是()。

  • 派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数
  • 派生类也是基类,所以它们是等价的
  • 派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员
  • 一个基类可以有多个派生类,一个派生类可以有多个基类
3句话:派生类类内,不管哪种继承,一定能访问基类的public和protected成员,永远不能访问private成员; 派生类对象,只有public派生时,才能访问基类的public成员; 派生类对象中含有从基类继承来的成员,但是派生类并不总能直接对其访问和修改
发表于 2018-05-26 10:49:13 回复(2)
子类无法访问父类的私有成员,但是可以继承。
可以通过子类中继承的父类的公有成员函数来访问父类的私有成员。
发表于 2020-06-01 17:35:17 回复(0)
C选项应该是错在前半部分,后面应该是对的。子类确实是无法访问其父类中的私有成员,但是不是说不继承。看那本书的时候好像记得上面说子类是继承父类私有成员的,但是无法访问。
发表于 2018-06-19 09:16:12 回复(2)
我们要对C++当中的3种继承方式的区别记忆清楚。公有继承:派生类继承基类的public、protected成员,并且它们仍然是派生类的public、protected成员。派生类的对象只能够访问基类的public成员。protected继承:派生类继承基类的public、protected成员,并且它们全部作为派生类的protected成员。派生类的对象不能访问基类的成员。私有继承:派生类继承基类的public、protected成员,并且它们全部作为派生类的private成员。派生类的对象不能访问基类的成员。
A:即便是public继承,也无法继承到基类的private成员。
B:派生类和基类当然是不同的,派生类无论哪种方式都至少保留了和基类在基类所拥有的private成员方面的差异。
C:这个逻辑是错误的,不是派生类通过建立了基类的成员来对基类的成员进行访问的,继承是不需要建立成员的操作的。
D:C++允许多继承。
发表于 2021-07-08 15:21:32 回复(0)
子类无法访问父类的私有成员,但是可以继承
发表于 2018-12-26 20:59:37 回复(0)

A在派生类公有继承基类时,可以访问基类的公有和保护数据成员和成员函数,但不能访问基类的私有数据成员。

B派生类是基类的扩展,它们的设计目的不同,不能等价。

C。派生类对象包含了从基类继承而来的所有成员,包括私有成员,但是派生类对象不能直接访问基类的私有成员,需要通过基类提供的公共接口或者友元函数来访问。

D一个基类可以有多个派生类,一个派生类也可以有多个基类。这种多重继承的关系可以形成复杂的类继承结构,使得派生类能够同时继承多个基类的特征和行为,具有更强的灵活性和可扩展性。

发表于 2023-11-30 19:49:48 回复(0)
子类无法访问父类的私有成员,但是可以继承,可以通过子类中继承的父类的公有成员函数来访问父类的私有成员。
发表于 2022-09-07 20:20:10 回复(0)
运行一下这个代码就懂了:
#include <iostream>

class Base {
private:
    int privateVar;
protected:
    int protectedVar;
public:
    int publicVar;
};

class Derived : public Base {
public:
    int derivedVar;
};

int main() {
    Base baseObj;
    Derived derivedObj;

    std::cout << "Size of Base: " << sizeof(baseObj) << " bytes" << std::endl;
    std::cout << "Size of Derived: " << sizeof(derivedObj) << " bytes" << std::endl;

    return 0;
}

运行结果是:
```
Size of Base: 12 bytes
Size of Derived: 16 bytes
```
分析这个结果:

1. `Size of Base: 12 bytes`: 基类 `Base` 包含一个私有成员 `privateVar` 和一个保护成员 `protectedVar`,以及一个公有成员 `publicVar`。由于大多数系统的 `int` 类型占用 4 个字节,这里的大小为 12 字节。
    
2. `Size of Derived: 16 bytes`: 派生类 `Derived` 继承了基类 `Base` 的成员,包括私有成员 `privateVar` 、保护成员 `protectedVar` 和公有成员 `publicVar`,并且还有自己的成员 ` derivedVar `。由于继承了基类的私有成员,导致派生类的对象大小增加。因此,大小为 12 字节(基类的大小) + 4 字节(派生类新增的成员)= 16 字节。
编辑于 2023-07-17 18:14:42 回复(0)
java和C++混着做的根本不知道选啥

发表于 2021-08-19 15:05:32 回复(0)
子类无法访问父类的私有成员,但是可以继承。 可以通过子类中继承的父类的公有成员函数来访问父类的私有成员。
发表于 2021-07-04 00:39:38 回复(0)
派生类会继承父类的私有成员,但是不能进行访问
发表于 2021-02-27 09:08:51 回复(0)
<p>子类会继承基本的私有数据成员,但是不继承私有成员函数!</p>
发表于 2020-04-29 20:06:35 回复(1)