14、下面叙述正确的是( )。 A.基类的对象可以赋给派生类 B.只要是基类的对象,都可以赋给由它派生的任一个派生类对象 C.只有该基类直接派生出来的类的对象才可以赋给该基类的对象 D.公有派生类的对象可以赋给基类的对象
时间: 2024-03-30 19:34:39 浏览: 18
答案是 D. 公有派生类的对象可以赋给基类的对象。公有派生是指派生类的访问权限为 public,此时基类的 public 和 protected 成员在派生类中仍然具有相应的访问权限,而 private 成员在派生类中不可访问。因此,公有派生类的对象可以视为基类的子类,可以赋给基类的对象。选项 A 和 B 是错误的,基类对象只能赋给基类或基类的引用或指针,而不能直接赋给派生类对象。选项 C 也是错误的,该基类的所有派生类的对象都可以赋给该基类的对象。
相关问题
下面()的叙述不符合赋值兼容规则。 A. 基类的对象可以赋值派生类的对象 B. 派生类指针可以指向基类对象 C. 派生类的对象可以初始化基类的对象 D. 派生类的对象的地址可以赋值给指向基类的指针
选项 A. 基类的对象可以赋值派生类的对象不符合赋值兼容规则。
根据赋值兼容规则,派生类的对象可以赋值给基类的对象,但是基类的对象不能赋值给派生类的对象。因为派生类的对象可能包含基类对象所没有的成员变量或成员函数,从而导致类型不匹配。
选项 B,C 和 D 都符合赋值兼容规则。
选项 B 中,派生类指针可以指向基类对象,因为派生类对象中包含了基类对象的所有成员变量和成员函数。
选项 C 中,派生类的对象可以初始化基类的对象,因为派生类对象中包含了基类对象的所有成员变量和成员函数,因此可以用派生类对象来初始化基类对象。
选项 D 中,派生类的对象的地址可以赋值给指向基类的指针,因为派生类对象中包含了基类对象的所有成员变量和成员函数,从而可以通过基类指针访问派生类对象的成员。
基类对象指针可以指向派生类对象吗
是的,基类对象指针可以指向派生类对象。这是因为派生类继承了基类的成员,所以派生类对象可以看作是基类对象的一种特殊情况。在程序中,可以使用基类对象指针来访问派生类对象的基类成员,也可以使用虚函数来访问派生类对象的派生类成员。但需要注意的是,如果使用基类对象指针来访问派生类对象的派生类成员,需要使用强制类型转换。