c++重载赋值操作符的一些疑问?

onlyhuiyi onlyhuiyi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好
下面这段代码我有点疑问,

class A {
public:
A(int i = 0) {
a = i;
cout << "Consturctor " << a << endl;
}
A(const A&) {
cout << "copy constructor " << endl;
}
A &operator=(const A& ra) {
cout << "= operator " << endl;
return *this;
}
~A() {cout << "Destructor " << a << endl;}
void print(){ cout << a << endl;}
private:
int a;
};

void main()
{
A a1(1), a2(2);
a1 = 5;

}

输出
Consturctor 1
Consturctor 2
Consturctor 5
= operator
Destructor 5

对于上面一段代码 执行到 a1 = 5 时候 为什么会有一个Constructor 5 和Destructor 5
这里a1 已经调用过构造函数了,这次不应该直接调用 operator=吗?
谢谢大家,有点不明白。
...全文

相关推荐

详解C++赋值操作符重载

"C++赋值操作符重载的原理与注意事项"C++中的赋值操作符`=`是我们编程中常用的一个符号,它用于将值从右边的表达式复制到左边的变量。然而,在某些特定场景下,特别是涉及到自定义类型(如类或结构体

weixin_38657353

C++ operator关键字(重载操作符)的用法详解

操作符重载使得用户定义的类型可以像基本数据类型一样进行算术、比较和其他操作,提升了代码的可读性和易用性。### 为什么使用操作符重载?操作符重载的主要目的是为了增加类的表达力和方便性。

weixin_38535364

C++中复制构造函数和重载赋值操作符总结

在C++中,复制构造函数和重载赋值操作符是类的重要组成部分,它们在对象的生命周期中起着至关重要的作用。本文将对这两个概念进行详细的总结:1. **复制构造函数和重载赋值操作符的定义**: -

weixin_38634065

C++中复制构造函数与重载赋值操作符的深入分析

这些规则确保赋值操作符的高效和安全。在C++中,如果一个类拥有指针或需要特别处理的成员,那么定义复制构造函数和重载赋值操作符通常是必要的,因为它们负责正确地处理这些特殊情况。

weixin_38616139

C++输入输出操作符重载的深入分析

在C++编程语言中,操作符重载是一种强大的特性,允许程序员为自定义类型赋予新的操作符含义。本文将深入探讨C++中的输入输出操作符重载,这对于理解和使用自定义类型进行I/O操作至关重要。

weixin_38604653
评论 11
收藏 已收藏
分享
返回顶部
onlyhuiyi
C++ 语言 65,214 成员 250,514 内容