写这篇文章的目的是因为这两天,遇到一个复制操作指针的问题(在一个列表里,存放的是指针变量,想通过右击鼠标实现复制操作),生成的新变量和源变量都是指向同一个地址,改变其中一个都会影响另一个,这样操作明显是不符合要求的。
网上找了资料,问了网友,后来回顾一下自己的寻问过程,发现自己很傻逼,不堪回首啊,后面还是要把C++Parimer找出来看啊。左思右想,还是把这个过程写下来,是一种记录,更是一种反思。
问题起因:
要实现复制指针变量,复制出来的变量和源变量是独立的,互补干扰。其实就是只要源指针的成员值复制,不要源指针的地址复制。百度发现这是要用拷贝构造函数或赋值操作符。好,先把这两个函数写了:
最开始把参数和返回值写成了指针类型(想想,这不是浅拷贝吗,还是两个一样的变量),把构造函数的:A(a)写在函数体里边A::A(a)(我的A是抽象类啊,抽象类不能实例化啊。如果在函数体里直接调用,其实就是先创建一个对象,然后再调用。正