类构造函数重载不起作用

时间:2012-09-08 23:02:34

标签: c++ visual-studio-2010

#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&gt; c:\ users \ aaron \ documents \ visual studio 2010 \ projects \ ass3 \ ass3 \ main.cpp(9):错误C2661:'Car :: Car':没有重载函数需要2个参数“

我不确定为什么。我首先尝试使用Car构造函数的默认参数

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

但这也不起作用。

我已经为此工作了3天了。任何帮助深表感谢。 谢谢。

编辑:以下建议

2 个答案:

答案 0 :(得分:1)

(狂野猜测警告)

根据评论中的所有说明,这看起来像是您计算机上某处有另一个car.h文件的情况。编译器正在找到一个。

由于你在Windows中,它也可能是Car.h或CAR.H等。

修改

由于没有明确的解决方案,“我打算称之为解决。感谢您的帮助。 - ngong0”

投票结束。

答案 1 :(得分:1)

如果这是你的ctor

汽车();

然后你不会成功给出两个参数

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

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