C++没有头文件的函数
C++ functions without header file
独立的C++函数需要头文件和代码文件吗?
我正在编写一些C++函数,这些函数使用我的其他一些C++类,但本身不属于类。它们旨在在 dll 中编译,所以我想知道是否有必要在单独的头文件中声明它们,或者我是否可以/应该将声明放在 .cc 文件中。
也许这只是不好的做法?
头文件很有用,因为它能够让其他源文件知道在不同翻译单元中声明的函数。
这是编译器所必需的,以便能够检查您调用的内容对于类型检查器是否正确。但必要性来自声明本身,而不是来自头文件的存在。
对于 DLL,如果我没记错的话,您不会因为每次使用它们时都要声明函数的签名而被迫这样做,例如。
extern C __declspec(dllimport) void foo();
当然,这意味着无论如何您都需要转发声明它们,因此我认为为您的 DLL 提供头文件没有任何问题,它只会将所有签名放在一起。
这不是绝对必要的,但强烈建议这样做。
将函数声明放在头文件中,将函数定义放在源 (.cc) 文件中。动机是允许用户(这里,程序员同行)只查看界面而不是实现(因为它可以改变)。此外,它允许其他源文件包含您的头文件并使用您提供的功能。
唯一的例外是静态函数,它们不应该在头文件中声明,因为它们不应该在源文件之外被查看或使用。
如果要在定义函数的源文件之外使用函数,则绝对需要一个声明。最好将声明放在头文件中,以便保持一致,否则您最终只会重复自己并引入潜在的错误来源。
相关文章:
- 用C++在单独的头文件中完成函数体
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 头文件、宏和内联函数c++
- 如何使用单独文件中的派生类访问友元函数对象
- C++无法定义虚拟函数 OUTER 类和头文件
- 回溯C++不打印函数,因此文件
- 如何从另一个文件继承私有成员变量和公共函数
- 从函数角度看ID到文件路径的内部与外部映射
- 区分非成员函数和头文件中的成员函数
- 如何使用对C函数和类对象的外部调用来处理C++头文件
- 如何在其他文件中使用函数
- 整数键映射到头文件中的成员函数指针
- C++(.cpp文件和.h文件)拆分代码并添加一个函数,提取 - 这很容易吗?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 用"=default"声明的函数应该只在头文件中执行
- 将单独的头文件和类定义文件链接到主函数文件 - G++ 返回重载"undefined reference to"构造函数
- C++ - 在一个函数/文件中初始化变量然后在main()/另一个文件中使用它的最佳方法是什么?
- C++单独的函数文件
- 只对单个函数/文件启用编译器优化