运算符重载问题!请教

alexmars19831026 2008-08-23 08:12:26
#include <iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i){real=r;imag=i;}
Complex operator+(Complex &c2);
void display();
private:
double real;
double imag;
};
Complex Complex::operator+(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
void Complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2;//=号运算符为什么不需要重载就能够达到目的
cout<<"c1=";
c1.display();
cout<<"c2=";
c2.display();
cout<<"c1+c2=";
c3.display();
return 0;
}
=号运算符为什么不需要重载就能够达到赋值目的,没有想明白,望指教
...全文
126 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Discovery 2011-12-03
  • 打赏
  • 举报
回复
就我目前的学习来看,这是一个拷贝构造函数,是不是编译器优化后实现的呢?????
herman~~ 2008-08-23
  • 打赏
  • 举报
回复
浅拷贝
alexmars19831026 2008-08-23
  • 打赏
  • 举报
回复
谢谢大家,明白了,做了实验,散分
wjb_yd 2008-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 akirya 的回复:]
如果没有写operator=那么编译器就会自动生成一个.
[/Quote]
光跃 2008-08-23
  • 打赏
  • 举报
回复
不是调用拷贝构造函数,是拷贝赋值函数。因为已经构造过了。
Vegertar 2008-08-23
  • 打赏
  • 举报
回复
嗯,我觉得我的观点还是蛮有道理的.貌似没有人支持.
就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的.当一个类没有自定义的拷贝构造函数的
时候系统会自动提供一个默认的拷贝构造函数,来完成复制工作。
光跃 2008-08-23
  • 打赏
  • 举报
回复
缺省的按成员赋值
应该是这种形式的吧:
inline Complex& Complex::operator = (const Complex &rhs)
{
real = rhs.real;
image = rhs.image;
}

光跃 2008-08-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 akirya 的回复:]
如果没有写operator=那么编译器就会自动生成一个.
[/Quote]
[Quote=引用 3 楼 vecri 的回复:]
如果不写operator=, 编译器会默认生成一个operator=, 实行浅拷贝
[/Quote]

呵呵
清钟沁桐 2008-08-23
  • 打赏
  • 举报
回复
编译器会默认生成一个operator= 什么形式呢 ??
vecri 2008-08-23
  • 打赏
  • 举报
回复
如果不写operator=, 编译器会默认生成一个operator=, 实行浅拷贝
Vegertar 2008-08-23
  • 打赏
  • 举报
回复
c1 + c2得到与左值同类型的临时对象.
赋值时编译器生成默认copy构造函数实现最简单的成员复制.
  • 打赏
  • 举报
回复
如果没有写operator=那么编译器就会自动生成一个.

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧