1

このようなC++オブジェクトでセッター関数をコーディングしようとしました。

void set_acceleration(double acceleration) {
  acceleration_(acceleration);
}

ここacceleration_で、はプライベート変数です。ただし、g++はコンパイル時エラーを発行しました。

'((Car*)this)->Car::acceleration_' cannot be used as a function.

これは関数ではなく、関数でacceleration_はありdoubleませんが、なぜこのように設定できないのですか?acceleration_オブジェクトを作成するときは、そのように設定しCarます。

4

1 に答える 1

9

宣言時に変数を初期化しない限り、構文は不正です(これにより、クラスメンバーが変更されるのではなく、新しい変数が作成されるため、これは目的ではありません):

double acceleration_(acceleration);

またはメンバー初期化リスト内:

className() : acceleration_(acceleration)
{
}

あなたは割り当てを探しています:

acceleration_ = acceleration;
于 2013-03-04T22:23:56.613 に答える