头文件已经定义,但是在CPP文件中使用的话不能报错有未定义的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了头文件已经定义,但是在CPP文件中使用的话不能报错有未定义的字符相关的知识,希望对你有一定的参考价值。

头文件后面加“;”没有,或者大小写问题,或者你定义成局部变量,或者确实没有定义~常见的就这么多,把源码发出来看看就好了 参考技术A 那就要include一下那个头文件 参考技术B 方便的话,贴下头文件看看

C++ 头文件约定

【中文标题】C++ 头文件约定【英文标题】:C++ header file convention 【发布时间】:2009-11-29 05:45:46 【问题描述】:

我正在使用 C++ 开发一个小游戏,并且我使用了 Eclipse CDT 的类生成器。它创建了一个带有类定义的 .h 文件和一个 .cpp 文件,其中包含所述类的无主体方法。

因此,如果我遵循模板,我将拥有一个包含方法声明的 .cpp 文件和一个包含方法主体的 .cpp 文件。但是,我不能在另一个文件中包含 .cpp 文件。

那么 C++ 中类和包含文件的约定是什么?我所做的是在 .h 文件中的类声明下填写方法主体,并删除 .cpp 文件。

【问题讨论】:

可能重复:***.com/questions/1686204/… 是的,我会说关于涵盖它的问题。 相关: How can I avoid including class implementation files? 【参考方案1】:

您不必包含 .cpp 文件。只需包含 .h 文件即可。 .h 表示标题,即它应该有的只是函数/对象定义。实际的实现放在同名的 .cpp 文件中。链接器将为您处理它。

头文件包含声明(也称为原型)。包含标头让程序知道“我声明的东西看起来像这样存在”。

标头的用户为我们节省了在代码文件中到处声明方法的工作——我们只做一次,然后导入文件。

.c/.cpp/.cc 文件包含定义 - 它告诉程序函数的作用。

您不必“包含” .c 文件,因为这是编译器所做的 - 它将所有 .c 文件编译成机器代码。

【讨论】:

【参考方案2】:

您可以做的另一件事是在创建头文件时使用预处理器指令 ifdef 和 endif。这将防止您的头文件被多次包含。 这是我在创建新头文件时使用的标准做法。

【讨论】:

【参考方案3】:

我不太确定我是否理解。头文件定义了类是什么以及可以做什么,您可以将其包含在任何需要使用该类的源文件中。

源文件实现类如何执行其操作。

但是,您可以.cpp 包含到另一个中(您可以将任何内容包含到任何内容中),但您不需要。

【讨论】:

以上是关于头文件已经定义,但是在CPP文件中使用的话不能报错有未定义的字符的主要内容,如果未能解决你的问题,请参考以下文章

C++ 头文件约定

WIN32中我新建一个cpp和.h 在头文件中写了一个结构体然后在.cpp文件中使用该结构体总是报错具体如下图

关于头文件和源文件的分别

C++中include其他头文件时何时应放在.h文件中,何时应放在.cpp文件中?

用vs2015写c++,编译报错项目已过期,怎么回事?

C 语言能不能在头文件定义全局变量?