c++ - C++ 中的 ObjA = ObjB

标签 c++ object

我在列表中找到了这个关于 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/

相关文章:

c - 基于 unix 的系统中的延迟加载等效项

python - 如何在 Python 中创建对象集合代理?

c++ - 没有通过引用看到对 vector 最后一个元素的操作的影响

c++ - 如何维护对另一个类中元素的线程安全引用

c++ - MPI_Isend 到非监听进程

javascript - 从 Vue.JS 中的子对象收集值并分配给父对象键

javascript - 赋值的同时赋值

c++ - 处理在 opengl 中单击 3d 或 2d 图形

c++ - 将项目添加到问题列表

c++ - 如何使用数组按引用对对象进行排序? (以一种不那么愚蠢/复杂的方式。)