-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\documents\visual studio 2010\projects\ass3\ass3\main.cpp(9): error 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

车();

那么你将无法成功给出两个论点

您需要创建一个带有两个参数的构造函数

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

于 2012-09-09T00:11:57.843 回答