<分区>
所以我正在阅读有关复制控制和三原则的内容,似乎他们给出的关于为什么需要它们的主要示例是将指针用作类成员时。它表示,如果将指针从一个对象复制到另一个对象,那么该类的多个对象将指向同一内存。为什么这样不好?难道我们不希望我们指向的对象指向同一件事吗?在类之间复制指针时到底应该发生什么?我不确定在使用复制构造函数处理指针时我们应该做什么..
<分区>
所以我正在阅读有关复制控制和三原则的内容,似乎他们给出的关于为什么需要它们的主要示例是将指针用作类成员时。它表示,如果将指针从一个对象复制到另一个对象,那么该类的多个对象将指向同一内存。为什么这样不好?难道我们不希望我们指向的对象指向同一件事吗?在类之间复制指针时到底应该发生什么?我不确定在使用复制构造函数处理指针时我们应该做什么..
最佳答案
如果您有任何动态内容,您需要编写一个复制构造函数,以避免浅(按成员)复制。
如果不同的指针指向同一个对象,为什么会出现问题?因为这样一来,如果您更改拷贝,就会更改原件。
例如,如果您有两个指向同一个对象的指针,然后使用第一个指针删除该对象——该对象将会消失;第二个指针不会为空,而是一个悬空指针,其先前的值现在无效。
关于c++ - 当我们将指针从一个对象复制到同一类的另一个对象时,我们到底想要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024572/