xxxuuuooo
2018-04-13 13:06
采纳率: 50%
浏览 1.2k

关于C++项目.h文件使用规则 的为题

在一个项目中,如果需要用到函数f,那么f必须在.h 文件当中声明吗?或者说在有a.h文件的前提下,可以直接在a.cpp里面声明并定义吗?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • threenewbee 2018-04-13 15:48
    已采纳

    从两个层次回答这个问题

    从编译器的角度看,.h文件和.cpp文件没有任何区别,如果你愿意,完全可以把所有代码写在.h文件里,并且在cpp文件里包含它,而不写别的代码。一样可以编译程序
    另外,虽然我们很少这么做,但是c++编译器实际上也可以单独编译h文件,同时,我们也可以include一个cpp文件。

    从程序员的角度看,h文件和cpp文件有逻辑上的分工,前者专门用于包含(相同的代码需要放在多个文件里),后者用于一般的代码。因此h文件里放的是多次使用的内容,而避免重复。这和c++语言的特点有关,c++要求无论是函数还是类还是变量,都要先定义才能使用。所以定义就是每个调用的文件里都需要重复而值得放在h文件里的。但是并不只有这样的内容可以放在h,也不表示定义就一定要写在h文件里,比如一个函数,只在一个cpp用,就完全没有必要。

    已采纳该答案
    评论
    解决 4 无用
    打赏 举报

相关推荐 更多相似问题