neverland199109 发表于 2015-4-26 19:48:37

c++求助

#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;
}
红色部分都是什么意思?
Complex Complex::complex_add(Complex &d)前面两个Complex是什么意思。

omplex_add(Complex &d)又怎么解释?
跪谢各位大神!

qlw319 发表于 2015-4-26 19:48:38

菜鸟路过,望指教

Complex complex_add(Complex &d);
这是类内部函数声明,(可以在类外面实现,也可以不写实现代码)

Complex Complex::complex_add(Complex &   d)
A            B               C                D         E    F
这是类内函数声明的实现,其中:
A表示返回值的类型
B表示是Complex类内部的函数(其中::指定作用域)
C是类内部函数声明时的函数名(如果该函数没有该函数的声明则会报错)
D是该函数的传入值的类型
E表示传入值是引用类型,即没有任何的内存拷贝,就是调用该函数时传入的值
F表示的是传入值的名称。

小咒 发表于 2015-4-26 22:28:16

Complex Complex::complex_add(Complex &d)
第一个Complex是返回值是一个Complex的对象
第二个Complex是声明这个函数是Complex类中的
complex_add是函数名
(Complex &d)函数的参数是一个Complex类对象的别名

微笑看世界 发表于 2015-4-26 23:33:14

我仅仅是看看而已

myqicq 发表于 2015-4-27 00:05:41

支持一下楼主

k2012 发表于 2015-4-27 02:39:44

支持一下楼主

taochen 发表于 2015-4-27 11:23:40

Complex Complex::complex_add(Complex &d),第一个Complex为返回的函数类型,j就像void代表的是无返回一样;第二个代表的是complex类,加上::告诉我们引用的complex_add函数是类complex的,complex_add(Complex &d)就是一个函数,Complex &d是函数的形参,形参类型 为Complex。

QQ[我在线上] 发表于 2015-4-27 16:03:11

{:1_1:}

shorey 发表于 2015-4-27 16:46:39

二楼正解

angel2015 发表于 2015-4-27 16:57:12

Ryans 发表于 2015-4-29 11:14:04

正解!

kissingfire 发表于 2015-4-30 21:58:52

第一个Camplex是表示Camplex型指针,指向一个Camplex的地址;
第二句定义的是返回Camplex指针的函数,形参是Camplex类的对象的地址,函数作用是将Camplex的对象d的real加给c.real,image也是一样。最后返回的是Camplex的对象c

Myliner 发表于 2015-5-4 22:21:44

回复能得鱼币吗?

Myliner 发表于 2015-5-4 22:22:20

再回复一次呢?

Myliner 发表于 2015-5-4 22:22:52

不是刷屏!

Myliner 发表于 2015-5-4 22:23:56

鱼必不够!:cry

Myliner 发表于 2015-5-4 22:24:30

原谅我:loveliness:

Myliner 发表于 2015-5-4 22:25:02

再来一次

Myliner 发表于 2015-5-4 22:25:37

go on!:curse:
页: [1]
查看完整版本: c++求助