neu*_*cer 4 c++ implementation header
有.h文件和.cpp文件,名称相同但扩展名不同.
如果我想使用.cpp文件中的内容,是否要包含.h文件或.cpp文件?
Mer*_*ham 23
简单的答案是你几乎总是想要包含.h文件,并编译.cpp文件.CPP文件(通常)是真正的代码,H文件(通常)是前向声明.
更长的答案是你可以包括其中任何一个,它可能对你有用,但两者都会给出略微不同的结果.
"包含"的作用基本上是在该行复制/粘贴文件.扩展名是什么并不重要,它将以相同的方式包含文件的内容.
但按照惯例,C++代码通常以这种方式编写:
SomeClass.cpp -
#include "SomeClass.h"
#include <iostream>
void SomeClass::SomeFunction()
{
std::cout << "Hello world\n";
}
Run Code Online (Sandbox Code Playgroud)
SomeClass.h -
class SomeClass
{
public:
void SomeFunction();
};
Run Code Online (Sandbox Code Playgroud)
如果包含其中任何一个,则可以使用其中的代码.但是,如果您有多个包含相同.cpp文件的文件,则可能会出现有关重新定义的错误.头文件(.h文件)通常只包含前向声明,没有实现,因此将它们包含在多个位置不会给您带来有关重新定义的错误.
如果你在包含来自其他.cpp文件的.cpp文件时以某种方式设法编译而没有错误,你仍然可以得到重复的代码.如果在多个其他文件中包含相同的.cpp文件,则会发生这种情况.这就像你写了两次函数.这将使您的程序在磁盘上更大,编译时间更长,运行速度更慢.
主要的警告是,对于使用模板的代码,此实现/转发声明约定不适用.模板代码仍将作为.h文件传递给您,但它(通常)直接在.h文件中实现,并且不会附带.cpp文件.
| 归档时间: |
|
| 查看次数: |
19858 次 |
| 最近记录: |