ために、私は次のクラス(ヘッダーファイル)を有する不一致:演算子*はHで宣言さオペレータとCPPファイル
class Kinetics{
double x;
double y;
double z;
public:
Kinetics();
Kinetics(double x_, double y_, double z_);
Kinetics(const Kinetics & obj);
~Kinetics();
double get_x();
void set_x(double x_);
Kinetics operator + (const Kinetics & obj);
Kinetics operator * (double c);
void operator = (const Kinetics & obj);
};
演算子+及び*として(CPP)が実装されている:
Kinetics Kinetics::operator + (const Kinetics & obj){
Kinetics aux(x + obj.x, y + obj.y, z + obj.z);
return(aux);
}
と
Kinetics Kinetics::operator * (double c){
Kinetics aux(x * c, y * c, z * c);
return(aux);
}
ここに反し: no match for operator*
私は宣言し、私のメインプログラムにヘッダーファイルを含めました。私は、次のメッセージが表示されます:
main.cppに:11:エラー:「2.0E + 0 * v2の」の「演算子*」
そして私はなぜ理解できないためマッチしません。このエラーを発生させるコード行(メインファイル)は次のとおりです。
Kinetics v4 = 2.0 * v2;
アドバイスは歓迎します。ありがとうございました。
変更オペランドの順序: '動態V4 = v2の* 2.0;'。あなたが定義したように、左側にKineticsが現れなければなりません。 –