|
5鱼币
比如这里有一个类
- 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; //指针的话不应该是d->real吗??
- c.imag = imag + d.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 c;
c.real = real + d.real; //指针的话不应该是d->real吗??
c.imag = imag + d.imag;//d->imag
return c;
}
之前有碰到过
complex *p = c1;
p->Complex complex_add();
搞的我好混乱呀,这个语法
本帖最后由 风扫地 于 2019-6-17 16:49 编辑
另外:
类名
对象名
你好像区分得不太清楚。。
Complex c;
Complex 是class_name
c 是object_name
Complex & d = c;
Complex 是class_name
c 是object_name
d 表示是c对象的一个引用,也就是别名的意思,同一个对象的别名,在传引用的作为函数参数的情况下,你也可以认为是一个指向原对象的指针,实际上在底层也会退化成原对象指针,但在C++语法的使用中传入时不需要取地址,使用时不需用 ->,编译器会处理这些问题。
|
最佳答案
查看完整内容
另外:
类名
对象名
你好像区分得不太清楚。。
Complex c;
Complex 是class_name
c 是object_name
Complex & d = c;
Complex 是class_name
c 是object_name
d 表示是c对象的一个引用,也就是别名的意思,同一个对象的别名,在传引用的作为函数参数的情况下,你也可以认为是一个指向原对象的指针,实际上在底层也会退化成原对象指针,但在C++语法的使用中传入时不需要取地址,使用时不需用 ->,编译器会处理这 ...
|