【问题标题】:.cpp vs .h and where should I put function definitions [duplicate].cpp vs .h,我应该把函数定义放在哪里[重复]
【发布时间】:2015-01-31 21:51:46
【问题描述】:

我最近一直在用 C++ 编写代码,我对 .cpp.h 感到困惑——什么时候使用它们以及它们应该包含什么。我一直在阅读,您应该将函数定义放在单独的 .cpp 文件中,并且头文件应该用于声明,但是如何使用单独的 .cpp 文件?我是#include还是什么?我正在寻找有关 .h.cpp 的说明,以及应该去哪里以及如何包含单独的 .cpp 文件。

【问题讨论】:

标签: c++ function header definition


【解决方案1】:

您应该将 .h 文件用于函数原型和数据类型声明以及预处理器指令,并将 .cpp 文件用于定义。例如,test.h 可能看起来像

#define CONSTANT 123 // pre-processor directive
void myfunction(char* str);

你的 test.cpp 可能看起来像

#include <stdio.h>
#include "test.h"

int main(int argc char **argv)
{
   myfunction("Hello World");
   return 0;
}

void myfunction (char* str)
{
   printf("%s and constant %d", str, CONSTANT);
   return;
} 

【讨论】:

  • 您可能想提及inline-functions(隐式和显式)和templates。
【解决方案2】:

通常,类声明放在 (.h) 头文件中,实现放在 .cpp 文件中。

你在cpp文件中包含头文件,所以所有的函数都会被识别,并且你应该记得在头文件中使用#ifndef以避免错误(包含循环)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2020-09-30
    • 1970-01-01
    • 2016-08-25
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多