header-files相关内容

C / C ++中的自足头文件

我最近发布了一个问题,询问什么操作会构成 禅C ++ 。我收到了很好的答案,但我不明白一个建议: 使头文件自给自足 如何确保您的头文件自给自足? 编辑:我发现 stackoverflow.com/questions/410516/header-files-usage-best-practices-c“>这个问题涉及我的”最佳实践“部分。 解决方案 自足的头文件不依赖于包含 ..
发布时间:2016-10-13 11:13:43 C/C++开发

是一个好的做法是把C ++类的定义放到头文件中?

当我们在Java,Vala或C#中设计类时,我们将定义和声明放在同一个源文件中。但在C ++中,传统上最好将两个或多个文件中的定义和声明分开。 如果我只是使用一个头文件, Java? 是否有性能损失或什么? 解决方案 答案取决于你创建什么样的类。 C ++的编译模型可以追溯到C的日子,因此将数据从一个源文件导入到另一个源文件的方法比较原始。 #include 指令会将您正在包 ..
发布时间:2016-10-13 11:01:10 C/C++开发

使用C ++头文件的最佳做法

我对头文件使用有以下疑问。 1 - 包括置于注释之后的警卫 / *版权声明和许可证信息(多行)* / #ifndef FOO_H #define FOO_H // Header文件内容 #endif Herb Sutter在他的“C ++编码标准”像上面的问题。他说的是“#ifndef”语句应该出现在头文件的第一行。我没有觉得这是令人信服的。 ..
发布时间:2016-10-13 10:59:46 C/C++开发

#pragma是C ++ 11标准的一部分吗?

传统上,在C ++中避免多个头包含的标准和可移植方法是/是使用 #ifndef - #define - #endif 预编译指令称为宏观防护计划(请参阅下面的代码段)。 #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif 然而,在大多数实现/编译器(见下图)中有一个更“优雅”的替代方案,其作用与宏指令方 ..
发布时间:2016-10-13 10:58:09 C/C++开发

什么是WINVER?

我在看一些代码,他们有这样的行: #define WINVER 0x0501 在 stdafx.h ?为什么需要定义 WINVER ?它如何影响你的代码?有人可以解释一下吗? 解决方案 WINVER决定了构建应用程序所需的最低平台SDK, 您可以使用它在编译时验证您的应用程序将在Windows 2000(0x0500)上工作,例如,在Windows XP(0x0501)。 MS ..
发布时间:2016-10-13 10:40:37 C/C++开发

C ++标准库中的哪些头保证包含另一个头?

C ++标准库头文件可能以未指定的方式包含彼此,因此程序员通常不应该依赖于一个头文件包括另一个头文件。然而,在少数情况下,头部被保证包括另一个头部,或者提供否则将需要包括另一个头部的某些功能。 解决方案 这个答案忽略了C头文件 - 和 。在C ++库头文件(所有引用都是N4582)中: 由 ..
发布时间:2016-10-13 10:19:40 C/C++开发

如何读取C ++源代码中的CMake变量

我想在一个地方存储我的图书馆的版本号。所以我在CMake文件中定义了这样的变量: SET(LIBINTERFACE_VERSION 1 CACHE INTEGER“libInterface版本”) 使用这个定义,我可以根据Microsoft的定义生成一个version.rc文件,我将其编译到库中然后在我的dll文件的属性窗口中正确显示。 现在我想在我的c ++源代码 ..
发布时间:2016-10-13 10:18:32 C/C++开发

应该C ++消除头文件?

许多语言,例如Java,C#,不会将声明与实现分离。 C#有一个部分类的概念,但实现和声明仍然保留在同一个文件中。 为什么C ++没有相同的模型?是否更实用的头文件? 我指的是当前和即将到来的C ++标准版本。 解决方案 我经常在C#和C ++之间翻转,C#中缺少头文件是我最大的宠物。我可以看一个头文件,并学习我需要知道的所有我需要知道一个类 - 它是成员函数被调用,它们的调用 ..
发布时间:2016-10-13 10:09:50 C/C++开发

工具找到包括头未使用?

我知道 PC-Lint 可以告诉您包含但未使用的标头。有没有其他工具可以做到这一点,最好在linux? 我们有一个大的代码库,在过去的15年已经看到大量的功能移动,但很少当函数从一个实现文件移动到另一个实现文件时,剩下的#include指令被删除,这使我们有一个很好的混乱。我显然可以做删除所有的#include指令,让编译器告诉我哪些包括,但我宁愿解决问题反向 - 找到未使用的 - 而不是重 ..
发布时间:2016-10-11 23:30:03 C/C++开发

.dll,.lib,.h文件有什么区别?

为什么在项目中应该包含一些* .lib,.h或其他文件?这些东西是用来做什么的? 解决方案 。 h :头文件,其包含声明的源文件(与包含实现的.cpp,.cxx等相反), p> .lib :静态库可能包含代码或只是链接到动态库。无论哪种方式,它是编译的代码,你链接到你的程序。静态库在链接时包含在您的.exe中。 .dll :动态库。就像一个静态的,但你需要部署它的.exe文件, ..
发布时间:2016-10-11 23:03:15 C/C++开发

编码C ++无标题,最佳实践?

当我第一次学习c ++时,我已经在许多其他语言之前编码,这使得标头的前景真的很令人沮丧。到目前为止,我的解决方案编码没有头文件在c ++中远远不是最佳的,限制了我可以在语言中做什么。 不必编写函数声明两次(头),并且在编译时保持相同的可伸缩性,调试的清晰度和设计的灵活性? 所以: 有可能代码C ++没有头吗?如果是,如何? 解决方案 使用 lzz 。它需要一个单一的文件,并自 ..
发布时间:2016-10-11 22:35:35 C/C++开发

为什么我不应该包括cpp文件而是使用头?

所以我完成了我的第一个C ++编程任务,并得到我的成绩。但根据分级,我失去了包括cpp文件的标记,而不是编译和链接它们。我不太清楚这是什么意思。 回顾我的代码,我选择不为我的类创建头文件,但做了一切cpp文件(它似乎工作正常没有头文件...)。我猜这个分级工意味着我在一些文件中写了“#include”mycppfile.cpp“;'。 我对 #include 的推理是:cb文件是: ..
发布时间:2016-10-11 21:55:35 C/C++开发

iostream和iostream.h之间的区别

iostream 和 iostream.h 之间有什么区别? 解决方案 提供它的编译器不推荐使用iostream.h iostream 是C ++标准的一部分。 iostream.h 在当前C ++标准(INCITS ISO IEC 14882 2003)。 编辑:正如@Jerry所提到的,目前的标准没有提到它,但没有标准的C ++提到它。 ..
发布时间:2016-10-11 21:39:01 C/C++开发

好的C ++ GUI库Windows

我正在寻找一个好的windows GUI库的C ++。我认为理想的特征应该是: 现代。 MFC,wxWidgets,Qt很久以前就开始了,他们不使用现代的C ++特性和标准库。 拥有丰富的控件, b>几乎无处不在的HTML的能力是一个幸福,我喜欢wxWidgets,当我不讨厌它。 开源。这是必须的。 以某种方式拥有表单设计师。是的,这将是巨大的。经过多年的德尔福工作,我每次都要手动指定 ..
发布时间:2016-10-11 21:08:11 C/C++开发

什么应该进入.h文件?

当你的代码分成多个文件,什么应该进入一个.h文件,什么应该进入.cpp文件? 解决方案 标题文件( .h )旨在提供信息这将需要在多个文件。例如类声明,函数原型和枚举通常放在头文件中。一句话,“定义”。 代码文件( .cpp )旨在提供实现信息只需要在一个文件中知道。一般来说,函数体和应该/将永远不会被其他模块访问的内部变量是属于 .cpp 文件中的内容。一句话,“实现”。 要 ..
发布时间:2016-10-11 20:17:41 C/C++开发

“using namespace”在c ++标题

在所有的c ++课程中,所有的老师总是使用 #include 后面的命名空间std; 在 .h 文件中。这似乎在我看来是危险的,因为从那时通过包括该标题在另一个程序,我会得到的命名空间导入到我的程序,也许没有意识到,打算或想要它(头包含可以非常深的嵌套)。 所以我的问题是double:我是对的使用命名空间不应该在头文件中使用,和/或有一些方法undo it,like: // head ..
发布时间:2016-10-11 19:59:01 C/C++开发

为什么我的包含保护不会阻止递归包含和多个符号定义?

有关包含警卫的两个常见问题: 第一个问题: 为什么不包含保护我的头文件不受递归包含?我不断收到关于不存在的符号的错误,显然存在,甚至更糟糕的语法错误,每次我写下如下: “ah” #ifndef A_H #define A_H #include“bh” ... #endif // A_H “bh” p> #ifndef ..
发布时间:2016-10-11 19:56:17 C/C++开发