-2
#include <iostream>

class Car{
public:
    Car(float newSpeed = 0, double newHP = 100);

protected:
    double HP;

private:
    float speed;
};



Car::Car(float newSpeed, double newHP)
{
    speed = newSpeed;
    HP = newHP;
}

#include <vector>

using namespace std;

int main(){
    Car car(10, 100);
    return(0);
}

上記のコードは、「1> c:\ users \ aaron \ document \ visual studio 2010 \ projects \ ass3 \ ass3 \ main.cpp(9):エラーC2661:'Car :: Car':」というエラーでコンパイルされません。オーバーロードされた関数は2つの引数を取りません」

理由はわかりません。私は最初にCarコンストラクターへのデフォルトの引数でこれを試しました

Car::Car(float newSpeed = 0, double newHP = 100);  

しかし、それもうまくいきませんでした。

私はこれに3日間取り組んできました。どんな助けでも大歓迎です。ありがとうございました。

編集:以下の提案

4

2 に答える 2

1

(ワイルド推測警告)

コメント内のすべての説明に基づくと、これは、コンピューターのどこかに別のcar.hファイルがある状況のように見えます。そしてコンパイラはそれを見つけています。

Windowsを使用しているため、Car.hやCAR.Hなどの場合もあります。

編集

明確な解決策はありませんが、「これを解決したと呼びます。ご協力いただきありがとうございます。–ngong0」

終了するための投票。

于 2012-09-08T23:50:34.040 に答える
1

これがあなたのctorなら

車両();

そうすると、2つの引数を与えることに成功しません

2つの引数を取るコンストラクターを作成する必要があります

class Car {public:Car(int HP、float speed);

于 2012-09-09T00:11:57.843 に答える