类/全局函数声明C++
Class/global function declarations C++
请帮忙-什么是全局函数,它用于什么以及何时使用?语法是(最简单的):
int Sum (Class_name h) {...}
在C++中,"全局函数"应该在.cpp文件中定义,并在.h文件中声明。
例如
总和h:
int Sum(int a, int b); // declaration (prototype)
Sum.cpp:
int Sum(int a, int b) // definition
{
return a + b;
}
现在,如果您想在另一个.cpp文件中使用Sum函数,只需添加#include "Sum.h"
并使用该函数即可。
AnotherModule.cpp:
#include "Sum.h"
void MyOtherFunction()
{
int var = Sum(3,4);
}
全局函数(在C++中)是一个可以在代码中任何位置访问的函数。它是C编程语言的继承。对于那些从java这样的语言开始的人来说,它可能看起来很奇怪,因为它不在类中,但它有点像公共静态方法,因为你不需要任何对象来调用它
所以,你可以在任何地方使用这个函数。。。(只是为了确保它以前已经声明过(请参见注释),就像在头文件中一样。)最好将它们封装在命名空间中,以避免与其他库的名称冲突,并组织代码,但C++允许在全局范围内声明代码。
当与任何对象没有关系时,或者当它是一个仅在声明它的文件中使用的函数时,可以使用它。。。例如,如果您希望从main中进行初始化,或者对不想放入类中的操作进行初始化等。对此没有严格的规定。。。这是你所感受到的;)
注:"已声明"=你告诉编译器函数int Sum (Class_name h)
存在,所以他不会侮辱你"你的函数尚未声明"
"已定义"=您对函数进行编码。它需要告诉编译器这个函数的作用示例:int sum(Class h){
return h.a + h.b;
}
您需要在.c/.cpp中定义一次函数(而不是"#define"这里;),并使用.h中的声明来使用它(除非您正在编辑定义函数的.cpp,在这种情况下,此函数需要在上面)
相关文章:
- .cpp和.h文件中的模板专用化声明
- 未在作用域中声明unordered_map
- C++避免重复声明的语法是什么
- 如何确保C++函数在定义之前声明(如override关键字)
- 错误:未在此范围内声明'reverse'
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 为什么在定义函数之前先声明它
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- #ifdef和未声明的标识符
- 没有显式声明的int[]中的foreach
- 在基于范围的for循环中使用结构化绑定声明
- 在将变量声明为引用时,堆在释放后使用
- C++:无法访问声明的受保护成员
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 在函数内部的声明中初始化数组,并在外部使用它
- Visual Studio中的函数声明和函数定义问题
- c++类声明时,相同的例程,不同的成员变量类型
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别