掌握C++中的赋值运算符函数知识
发布时间
阅读量:
阅读量
什么时候赋值运算符符号被调用?
当一个已初始化的对象从另一个对象继承初值时,赋值操作被执行(特别强调与复制构造函数的不同之处)
Test T1, T2;
T2 = T1; //assignment operator called
什么时候我们应该写我们自己的赋值运算符函数?
通常情况下,在C++编程中,默认情况下编译器为每个类生成一个自定义对象复制时的操作(即自定义赋值操作符)。然而,在某些特定情况下(例如涉及带有指针的数据成员或动态资源分配),这种默认行为就不再适用了。具体来说,在带有指向内存区域的成员变量的情况下,默认构造不会产生问题吗?哦不,在这种情况下,默认构造会导致对象实例共享相同的内存地址吗?
我们写赋值运算符函数的时候要注意什么?
函数返回的结果采用其引用形式,在函数执行结束后返回自身引用(T1=T2=T3)。
传递的参数声明为常量引用。如果传递的是引用而非常量引用,在调用函数时将导致创建新的对象;如果传递的对象不是常量,则该对象的状态将在函数体内发生变化。
在为程序分配新内存之前,请确保先释放实例自身占用的内存空间。如果不进行此操作可能会导致内存泄漏现象(即动态分配的内存量未被及时回收而导致无法复用,并由此降低了系统的资源利用率)。
鉴别传入参数与当前实例(*this)是否为同
全部评论 (0)
还没有任何评论哟~
