【发布时间】:2014-12-21 14:28:37
【问题描述】:
我最近收到了一个定义 .h 文件的任务。在底部的这个 .h 文件中,它#includes .cpp 文件。例如
#ifndef CLASS_H
#define CLASS_H
class MyClass
{
//variablles and methods
};
#include MyClass.cpp
#endif
现在,当我尝试为 .cpp 文件编写定义时,问题就出现了。例如,当我尝试定义构造函数时,会给我一个错误,类似于
error: ‘MyClass’ does not name a type
我在尝试定义运算符重载函数时也会出错
我知道这些错误只适用于上述情况,因为当我在我的 .cpp 文件中 #include 我的 .h 文件时,它编译完美
我不允许更改此作业中的任何 .h 文件
【问题讨论】:
-
你为什么要这样做?
-
如果您要在
.h文件中包含.cpp文件,请不要尝试编译.cpp文件。 -
将
MyClass.cpp放在标题中是没有意义的。把它拿出来。并记住在 cpp 文件中包含标题。 -
我不确定他们的方法背后的原因。但是我能做些什么来让它正确编译吗?
-
@KeatonPennells 要正确编译什么?如果您将
.cpp文件包含在其他文件中,则不应尝试编译.cpp文件,就像您通常从其他文件中包含.h文件一样,因此您不要尝试编译他们。
标签: c++ header-files