1

setRealPart メソッドを使用して、Complex クラスのオブジェクト c4 の double に -1.4 を代入しようとしています。しかし、それは私にエラーを与えます。

関連するコードは次のとおりです。

プロトタイプ:

void setRealPart(double &);

意味:

void Complex::setRealPart(double &real)
{
real = this->rpart; 
}

実装:

c2.setRealPart(-1.4);`

コンストラクター:

Complex::Complex(double realpart,double impart)
{
rpart = realpart;
ipart = impart;         
}

私が受け取ったエラーは次のとおりです: No known conversion for argument from double to double& 2.No matching function call setRealPart(double)

4

2 に答える 2

2

非 const 左辺値参照を右辺値にバインドすることはできません。これは、ここで行おうとしていることです。

c2.setRealPart(-1.4);

参照を取る必要がありconstます。それに加えて、あなたの割り当ては間違った方法です。これはうまくいきます:

void Complex::setRealPart(const double &real) { rpart = real; }
//                        ^^^^^

またはdouble値を取る:

void Complex::setRealPart(double real) { rpart = real; }
于 2013-10-15T21:11:17.160 に答える