鱼C论坛

 找回密码
 立即注册
查看: 3522|回复: 2

小甲鱼C++运算符重载中加法的那个形参为什么是地址啊

[复制链接]
发表于 2013-4-17 09:37:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>

class Complex
{
public:
        Complex();
        Complex(double r, double i);
        Complex complex_add(Complex &d);  //求教 直接用对象也行 但是这块为什么要用地址啊  
        void print();

private:
        double real;
        double imag;
};

Complex::Complex()
{
        real = 0;
        imag = 0;
}

Complex::Complex(double r, double i)
{
        real = r;
        imag = i;
}

Complex Complex::complex_add(Complex &d)
{
        Complex c;
        c.real = real + d.real;
        c.imag = imag + d.imag;

        return c;
}

void Complex::print()
{
        std::cout <<"("<<real<<","<<imag<<"i)\n";
}

int main()
{
        Complex c1(3,4),c2(5,10),c3;
        c3 = c1.complex_add(c2);

        std::cout <<"c1=";
        c1.print();
        std::cout <<"c2=";
        c2.print();
        std::cout <<"c1+c2=";
        c3.print();
        return 0;
}

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-17 10:42:18 | 显示全部楼层
  1. Complex complex_add(Complex &d);
复制代码
这个程序这里用的是引用,函数参数传递有三种形式:值传递,地址传递和引用,引用相对于值传递和地址传递更加方便。因为它并不需要为形参申请地址空间,引用的形参和实参用的是同一个地址。只是给这个地址空间取不同的名字而已。就像我们人一样。不同的人会叫我们不同的名字。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-4-17 16:08:14 | 显示全部楼层
……原来如此 谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-2 19:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表