首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >头文件/ cpp文件

头文件/ cpp文件
EN

Stack Overflow用户
提问于 2012-09-28 05:53:09
回答 4查看 200关注 0票数 0

我找不到头文件的用途。我们为什么需要它?C#中没有头文件,你只需要写"using“就行了。

另外,头文件和cpp文件有什么不同?

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2012-09-28 06:07:52

在回答“头文件的用途是什么”这一部分时,如果将方法定义与实际实现分开,则在更改方法的实现时,编译器不会重新编译项目中的所有文件。

这是因为调用它的文件仍然以相同的方式调用它(这在头文件中定义),并且如果实现发生变化(在cpp文件中),编译器只编译被更改的文件并再次进行链接,从而在处理大型项目时节省了大量时间。

票数 3
EN

Stack Overflow用户

发布于 2012-09-28 05:57:35

看看下面的article,它解释了c#编译器是如何工作的,以及为什么它不需要头文件。

票数 1
EN

Stack Overflow用户

发布于 2012-09-28 06:01:23

AFAIK没有区别。你可以随时编写不带头的代码:

a.cpp

代码语言:javascript
复制
class A {
public:
   void foo();
};

void A::foo() {}

b.cpp

代码语言:javascript
复制
class A {
public:
   void foo();
};

int main() { A a; a.foo(); }

然而,对于公共定义使用头文件更容易、更方便,并且产生的错误更少,否则必须在每个翻译单元(.cpp)中编写:

a.h

代码语言:javascript
复制
class A {
public:
   void foo();
};

a.cpp

代码语言:javascript
复制
#include "a.h"
void A::foo() {}

b.cpp

代码语言:javascript
复制
#include "a.h"

int main() { A a; a.foo(); }

当然,您只能编译.cpp文件。但是,对于头文件有“预编译”。

为什么C#不需要报头?我对它的看法完全不同。在C#中,您只有头,而using就相当于C++ include。但这只是我个人的观点:D

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12630582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档