另外,如果没有重载赋值运算符,那么编译器默认的赋值运算符的原理是怎样的?
如果没有重载赋值运算符,但是类中的数据成员又有指针,那么在使用默认的赋值运算符是不是危险的?
求各位指教.
4 个解决方案
#1
不是空的,只是实现默认的构造。至于默认的构造就看该类里面的数据成员的默认构造是什么了。
默认的赋值操作符是实现按位拷贝。就是把A里面的内容按照数据位复制给B里面的内容
默认的赋值操作符是实现按位拷贝。就是把A里面的内容按照数据位复制给B里面的内容
#2
如果没有重载赋值运算符,但是类中的数据成员又有指针,那么在使用默认的赋值运算符是不是危险的?
>>虽说不绝对,但通常都是危险的。
>>虽说不绝对,但通常都是危险的。
#3
“按位”不准确,应该是按成员拷贝。如果某个成员的类有自己的拷贝那么会调用到。
#4
深入探索C++对象模型 第二章
#1
不是空的,只是实现默认的构造。至于默认的构造就看该类里面的数据成员的默认构造是什么了。
默认的赋值操作符是实现按位拷贝。就是把A里面的内容按照数据位复制给B里面的内容
默认的赋值操作符是实现按位拷贝。就是把A里面的内容按照数据位复制给B里面的内容
#2
如果没有重载赋值运算符,但是类中的数据成员又有指针,那么在使用默认的赋值运算符是不是危险的?
>>虽说不绝对,但通常都是危险的。
>>虽说不绝对,但通常都是危险的。
#3
“按位”不准确,应该是按成员拷贝。如果某个成员的类有自己的拷贝那么会调用到。
#4
深入探索C++对象模型 第二章