我在列表中找到了这个关于 C++ 的练习,但无法解决它。这里是: 假设我们有以下指令:
ObjA = ObjB;
其中ObjA是ClassA的一个对象,ObjB是ClassB的一个对象,这样才能正常运行,当且仅当有:
A.A类中的一个转换函数
B.B类中的一个转换函数
C. ClassA 中的构造函数
D. ClassB 中的构造函数
可以有多个正确答案。 我在这个练习中遇到的问题是它们都是对象,并且从理论上讲,您不能更改对象内的实例——这就是我认为“=”会在那里做的事情。由于可能有多个正确答案,因此我认为没有一个是正确的。但我不确定。
最佳答案
你说:
There can be multiple correct answers.
但这与
直接矛盾if and only if
无论如何,您需要从右侧到左侧的隐式转换。
这样的转换可以表示为rhs中的转换运算符。类型,或作为 lhs 中的构造函数。类型,或者在这种情况下(赋值)作为 lhs 中的特殊赋值运算符。类型。
编辑:哦,我没有考虑到可能的继承关系(所谓的切片分配),但我只是在另一个答案中看到了这一点。您得到的答案选项中没有提到它。我认为您应该找到一些质量更好的培训 Material ……
关于c++ - C++ 中的 ObjA = ObjB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565823/