【发布时间】:2018-02-02 02:46:51
【问题描述】:
派生类对象可以分配给 C++ 中的基类对象。
Derived d;
Base b = d; // It's Ok
但是为什么不能将基类对象分配给派生类对象?
Base b;
Derived d = b; //Not Ok. Compiler give an error
编辑:
抱歉,这个问题其实是在面试的时候问的。
【问题讨论】:
-
因为这完全没有意义。或者,也许您可以解释一下为什么您认为它应该是可能的,以及这种行动的结果应该是什么。
-
@juanchopanza 其实这个问题是在采访中问的。
-
用“OOP 导论”的话来说:每个苹果都是水果,但不是每个水果都是苹果。
-
@rsp 想一想结果会是什么,是得出没有意义的结论的好方法 :-) 我想这就是面试官想要触发的。 (不是我的反对票。)
-
一个明显的问题不一定是一个糟糕的问题。请不要以明显的主观理由投反对票。这个问题很明确。
标签: c++ c++11 object inheritance derived-class