C++ 在*.h文件中包含哪些更好的*.hpp或*.cpp文件

C++ 在*.h文件中包含哪些更好的*.hpp或*.cpp文件,c++,C++,我必须运行Makefile。其中包括以下命令之一g++file1.o file2.o file3.h-o输出 我的文件如下:- file1.cpp #include<iostream> #include "file2.h" #include "file3.h" using namespace std; ----- ------ ----- 请告诉我这件事 我可以在file3.hpp中定义file3.h的函数吗?或者我应该使用file3.cp

我必须运行Makefile。其中包括以下命令之一
g++file1.o file2.o file3.h-o输出

我的文件如下:-

file1.cpp

#include<iostream>
#include "file2.h"
#include "file3.h"
using namespace std;
 -----
------
-----
请告诉我这件事


我可以在
file3.hpp
中定义
file3.h
的函数吗?或者我应该使用
file3.cpp
来定义
file3.h
的函数(包括直接写在类声明中的类成员函数),模板函数应该在标题中。其他函数应该在
.cpp
中。行
g++file1.o file2.o file3.h-o输出是否来自您编写的Makefile,还是其他人编写的Makefile?直接将头文件馈送到
g++
是非常不寻常的,尤其是在一个看起来像是要将对象文件链接在一起的命令中。事实上,如果Makefile行确实来自其他人,那么我认为它是一个打字错误。在g++命令中有“file3.h”是很奇怪的。为什么会这样?我觉得其他人似乎不知道他们在做什么。希望这只是一个例子,但是像
#define X
这样的include-guard非常简洁,可能会与程序中的变量名冲突!(X是数学中随机变量的一个相当标准的符号)。
#include<something>
#ifndef X
#define X
-----
function declaration
-----
-----

#include "file3.hpp"
#endif
#include "file3.h"
------
-----
function definition
--------