使用指针复制构造函数用法
Copy constructor usage with pointer
我有一个关于复制构造函数用法的问题。我知道还有许多其他已回答的问题和种类繁多的教程,但我无法完全解决我的问题。
我有一个实现复制构造函数的类A
:
A::A(const A& a) { ....... }
现在在另一个类B
中,我有一个私有属性:
A myA;
在执行过程中,使用指向A
对象的指针调用B
方法,我们将其称为anAPointer
。我现在想将anAPointer
指向的元素复制到B::myA
中。如果指针后面的元素稍后更改,我不希望这些更改影响myA
属性。
我用过this->myA = A(*anAPointer);
。这有我想要的效果吗?
我必须在B
的析构函数中调用delete myA
吗?
您的代码:
A(*anAPointer)
正在调用A
的复制构造函数,因此this->myA
将是与anAPointer
所指向的值无关的A
的实例。对第一个的更改不会传播到另一个,反之亦然(除非你的类A
处理共享资源,但这在你的问题中没有指出(。
myA
不是指针,所以你不必在B
的析构函数中调用delete
。
请注意,如果您在A
中实现复制构造函数,您应该考虑 3/5/0 规则,并且可能复制和交换惯用法。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 构造函数的用法
- 使用指针复制构造函数用法
- CPP/C 中的常量用法和结构构造函数中的澄清
- 复制构造函数方法的用法
- 参数和成员变量在构造函数中的用法
- C 中的构造函数和破坏者的内联用法
- 为什么内存泄漏只发生在赋值运算符重载的情况下,而不是在复制构造函数中,以及复制和交换习惯用法如何解决它
- 使用检测习惯用法来确定类型是否具有具有特定签名的构造函数
- C++:复制和交换习惯用法,替代构造函数
- 带有智能指针的虚拟构造函数习惯用法
- 如何实现拷贝交换习惯用法的复制构造函数
- 对象构造函数"settings"习惯用法
- c++单例用法:编译器抱怨私有构造函数
- 移动构造函数的预期用法未发生
- const char*在构造函数中的用法