jos*_*osf 1 c++ class operator-overloading complex-numbers
问题是实现Cplx具有两个双精度的类,x并y表示复数的实部和虚部.
其中一个子任务是实现operator ->以下描述:
(z->re和z->im):访问z(你必须实现改变之类z->re = 5)的实部和虚部.
我遇到麻烦operator ->我从来没有真正理解它是如何工作的所以我的问题是:如何->工作以及何时使用它以及如何在这个问题中应用这个想法.
以下是您所要求的...但不确定它是您想要的:
template <typename T>
struct ReIm
{
const ReIm* operator ->() const { return this; }
ReIm* operator ->() { return this; }
T re;
T im;
};
struct Cplx
{
double x;
double y;
ReIm<double> operator ->() const { return {x, y}; }
ReIm<double&> operator ->() { return {x, y}; }
};
Run Code Online (Sandbox Code Playgroud)