C ++编译器认为我的构造函数定义是一个方法

时间:2015-06-09 11:11:47

标签: c++ constructor

我收到以下错误:

C:\Users\James\cavewhere\dewalls\src\unit.cpp:6: error: C2511: 'dewalls::Unit::Unit(QString,dewalls::UnitType *)' : overloaded member function not found in 'dewalls::Unit'
C:\Users\James\cavewhere\dewalls\src\unit.cpp:9: error: C2550: 'dewalls::Unit::{ctor}' : constructor initializer lists are only allowed on constructor definitions

unit.h:

#ifndef UNIT_H
#define UNIT_H

class UnitType;

#include <QString>

namespace dewalls {

class Unit
{
public:
    Unit(QString name, UnitType *type);

private:
    QString _name;
    UnitType *_type;
};

}

#endif // UNIT_H

unit.cpp:

#include "unit.h"
#include "unittype.h"

namespace dewalls {

Unit::Unit(QString name, UnitType *type) :
    _name(name),
    _type(type)
{

}

}

对于上帝的爱,我做错了什么?

1 个答案:

答案 0 :(得分:4)

看起来UnitType也应该在您的命名空间中

namespace dewalls {
    class UnitType;
}