将对象及其数据成员复制到另一个对象
Copying Objects and its data members to another object
假设我们有一个名为Animal的类型结构,我们有两个名为Cat和Dog的对象。我正试图编写一段代码,声明一个名为Cat的对象,并将其数据成员初始化为与另一个名名为Dog的对象相同的值。这两个对象的类型都是结构Animal。
我想知道是不是Animal Cat = Dog
。或CCD_ 2。我也在想有什么不同。
您的第一次尝试是对的。这里可以看到一个变体:
Animal cat("silvester");
Animal dog("fido");
cat = dog;
在第二个例子中,您实际上取了"Dog"的地址,并将其分配给非指针类型(Animal)。第二个版本不会编译,因为类型不匹配。
差别是巨大的。我们谈论的是对象,以及指向对象的指针。指针的值是内存中的一个地址,而对象的值是对象的数据本身。
这两个语句都是复制初始化的示例。与equals的rhs上的表达式类型匹配的构造函数就是所选择的。所以,你的问题实际上是关于如何将参数传递给通过引用接受它们的函数。答案是,它看起来就像你传递价值时的样子。&
前缀采用变量的地址,并在传递指向函数的指针时使用。因此,如果您的Animal
有一个类似于Animal::Animal(Animal*)
的构造函数,那么它将由调用Animal Cat = &Dog
拾取。
相关文章:
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 如何使用函数将一个对象的输入复制到另一个对象中
- 为什么我可以使用 memcpy 将一个对象变量复制到另一个对象变量
- 复制赋值函数如何访问另一个对象的私有成员(Stroustroup 原则和实践书)?
- 复制一个对象并使两者共享一个成员变量 (C++)
- 我可以制作一个对象方法,如果单独调用,它将自行修改,但如果在复制初始化期间调用,则会返回一个新对象?
- 为什么当我添加一个不同的对象(复制构造函数中的参数)时调用复制构造函数?
- 如何在C++中将一个对象从一个向量复制到另一个向量?
- 将一个 OpenCV OutputArrayOfArrays 对象复制到另一个对象
- 为什么在 C++ 中,当对象包含在另一个对象中时,复制构造函数被调用两次
- C :将一个对象复制到构造函数中的另一个对象
- std::vector::push_back一个不可复制的对象会导致编译器错误
- 如何将一个类的对象复制到另一个类中
- 当我们把指针从一个对象复制到同一类的另一个对象时,我们到底想要什么
- 为什么在 const 对象上调用 std::move 在传递给另一个对象时会调用复制构造函数
- 如何将一个 ostringstream 对象复制到另一个对象中(使用 gcc-4.7.0)
- C++ 将一个对象的值复制到另一个对象中
- 将对象及其数据成员复制到另一个对象
- 将一个对象数据复制到另一个相同类型 C++ 的对象
- 如何按值返回一个不可复制的、可移动的对象作为const并存储它