假设我们有一个名为 Animal 的类型结构,我们有两个名为 Cat 和 Dog 的对象。 我正在尝试编写一个代码来声明一个名为 Cat 的对象,并将其数据成员初始化为与另一个名为 Dog 的对象相同的值。两个对象都是 struct Animal 类型。
我在想是不是 Animal Cat = Dog
。或者
动物猫 = &Dog
。
我也想知道有什么区别。
最佳答案
您的第一次尝试是正确的。可以在这里看到一个变体:
Animal cat("silvester");
Animal dog("fido");
cat = dog;
在您的第二个示例中,您实际上获取了“Dog”的地址并将其分配给非指针类型(Animal)。第二个版本无法编译,因为类型不匹配。
差别很大。我们谈论的是对象,以及指向对象的指针。指针的值是内存中的地址,而对象的值是对象的数据本身。
关于c++ - 将对象及其数据成员复制到另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26209090/