Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ #在include guard结束之前将.cpp包含在.h文件中_C++_Header Files - Fatal编程技术网

C++ #在include guard结束之前将.cpp包含在.h文件中

C++ #在include guard结束之前将.cpp包含在.h文件中,c++,header-files,C++,Header Files,我最近收到一份定义.h文件的作业。在这个底部的.h文件中,它包括.cpp文件。比如说 #ifndef CLASS_H #define CLASS_H class MyClass { //variablles and methods }; #include MyClass.cpp #endif 现在,当我试图为.cpp文件编写定义时,问题出现了。例如,当我试图定义构造函数is时,它会给我一个错误 error: ‘MyClass’ does not name a type 当我试图

我最近收到一份定义.h文件的作业。在这个底部的.h文件中,它包括.cpp文件。比如说

#ifndef CLASS_H
#define CLASS_H

class MyClass
{
  //variablles and methods
};

#include MyClass.cpp

#endif 
现在,当我试图为.cpp文件编写定义时,问题出现了。例如,当我试图定义构造函数is时,它会给我一个错误

 error: ‘MyClass’ does not name a type
当我试图定义运算符重载函数时,我也会出错

我知道这些错误只适用于上述情况,因为当我在.cpp文件中包含我的.h文件时,它可以完美地编译


我不允许更改此作业中的任何.h文件

请勿在头文件中执行此操作: #包括MyClass.cpp 单独编译MyClass.cpp并在MyClass.cpp中编译,具有:

#include MyClass.hpp


无论您拥有什么。

为什么要这样做?如果您要在
.h
文件中包含
.cpp
文件,那么不要尝试编译
.cpp
文件。将
MyClass.cpp
放在标题中没有意义。把它拿出来。记住在cpp文件中包含头文件。我不确定他们的方法背后的原因。但我能做些什么来让它正确编译呢?@KeatonPennells想得到正确编译的东西吗?如果将
.cpp
文件包含在其他文件中,则不应尝试编译
.cpp
文件,就像通常包含其他文件中的
.h
文件一样,因此不尝试编译它们。
#include MyClass.h