默认的赋值函数解决办法

默认的赋值函数
声明2个类类型Animal a,b;
在类里面没有定义赋值函数operator=,但是仍然可以将b=a,
那么是不是有默认的赋值函数呢
默认的赋值函数是怎么样的?
------解决方案--------------------
拷贝构造函数
------解决方案--------------------
这称为自动生成的函数吧;
就是没有定义的时候;
编译器自动添加该函数的定义。

包括
1)缺省构造函数;-----不用参数调用的构造函数
2)拷贝构造函数;-----用一个对象来构造对象
3)拷贝赋值运算符函数;---赋值运算
4)析构函数           
我记得似乎是五个函数

具体可以参考Effective C++ 等书籍

 
------解决方案--------------------
默认的等号效果就像 memcpy 一样,当类中有new出来的东西时,为了防止多次析构,需要重新定义等号操作符
------解决方案--------------------
默认的赋值操作符和拷贝构造函数只负责类似值赋值的方式,这就考虑指针问题了,他只是将那块内存赋值给他,不会进行重新为他分配内存,再将这个内容拷贝过来,就是两个指针指向同一块区域,这会导致析构时候出现问题