【发布时间】:2021-03-11 10:40:07
【问题描述】:
我正在尝试创建一个 Complex 类(复数形式为 z=a+ib m,其中 a= _re 和 b=_im),我需要使用 2 个参数(双精度、双精度)创建和构造函数。 _re 和 _im 是 2 个双指针,我不知道如何将它们指向一个值。这是代码,我不能修改 Class 因为是学校项目。
#include <iostream>
#include <cmath>
using namespace std;
class Complex {
private:
double* _re;
double* _im;
public:
Complex();
Complex(double, double);
void Display();
};
Complex::Complex()
{
_re = 0;
_im = 0;
cout << "Complex::Complex()" << endl;
}
Complex::Complex(double re, double im)
{
double* _re = new double;
_re = &re;
double* _im = new double;
_im = &im;
cout << "Complex::Complex(double re,double im)" << endl;
}
void Complex::Display()
{
int nr = 1;
cout << "z" << nr << "= " << *_re << "+i* " << *_im << endl; nr++;
}
int main()
{
Complex z1(2,3);
z1.Display();
return 0;
}
【问题讨论】:
-
为什么要指针?
-
_re = &re;这将非常猛烈且非常迅速地回火。 -
您似乎对指针的工作原理以及指针的必要性存在一些误解。你的类根本不需要指针。
-
那个类定义是糟糕。如果他们认为可以,你的教师不应该教 C++。
-
您要查找的代码是
_re = new double(re);。现在阅读你书中的指针、成员变量和范围,直到你明白为什么。