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

标签 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

单元.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

单位.cpp:

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

namespace dewalls {

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

}

}

看在上帝的份上,我做错了什么?

最佳答案

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

namespace dewalls {
    class UnitType;
}

关于C++ 编译器认为我的构造函数定义是一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30730390/

相关文章:

c++ - OpenMP #pragma omp for v/s #pragma omp parallel for之间的区别?

c++ - 数组 (C++) : why use pointers over direct manipulation?

c# - 构造函数可以异步吗?

unit-testing - Kapt generatetubs - 无法使用单元测试中的内部构造函数初始化对象

c++ - 具有默认值的参数化构造函数是什么意思?

c++ - 来自 std::find 的此错误的优雅解决方案是什么?

c++ - 用数组替换 malloc

c++ - 使用 WinInet 和 WinHTTP 调用服务器

c++ - 编译器执行并提供默认构造函数的构造函数代码内部发生了什么?

java - 为什么我会收到此错误 "The constructor is undefined"?