Advertisement

掌握C++中的赋值运算符函数知识

阅读量:

什么时候赋值运算符符号被调用?

当一个已初始化的对象从另一个对象继承初值时,赋值操作被执行(特别强调与复制构造函数的不同之处)

复制代码
 Test T1, T2;

    
 T2 = T1; //assignment operator called

什么时候我们应该写我们自己的赋值运算符函数?

通常情况下,在C++编程中,默认情况下编译器为每个类生成一个自定义对象复制时的操作(即自定义赋值操作符)。然而,在某些特定情况下(例如涉及带有指针的数据成员或动态资源分配),这种默认行为就不再适用了。具体来说,在带有指向内存区域的成员变量的情况下,默认构造不会产生问题吗?哦不,在这种情况下,默认构造会导致对象实例共享相同的内存地址吗?

我们写赋值运算符函数的时候要注意什么?

函数返回的结果采用其引用形式,在函数执行结束后返回自身引用(T1=T2=T3)。

传递的参数声明为常量引用。如果传递的是引用而非常量引用,在调用函数时将导致创建新的对象;如果传递的对象不是常量,则该对象的状态将在函数体内发生变化。

在为程序分配新内存之前,请确保先释放实例自身占用的内存空间。如果不进行此操作可能会导致内存泄漏现象(即动态分配的内存量未被及时回收而导致无法复用,并由此降低了系统的资源利用率)。

鉴别传入参数与当前实例(*this)是否为同

全部评论 (0)

还没有任何评论哟~