我自己试了一下是可以的,但是也看到很多人说静态函数不能在其他文件调用,这是怎么回事
test_static.h
#pragma once
static int getNum() {
return 20;
}
main.cpp
#include"test_static.h"
int main()
{
int k = getNum();
return 0;
}
我自己试了一下是可以的,但是也看到很多人说静态函数不能在其他文件调用,这是怎么回事
test_static.h
#pragma once
static int getNum() {
return 20;
}
main.cpp
#include"test_static.h"
int main()
{
int k = getNum();
return 0;
}
你是写在头文件中了,头文件得包含方式,c语言就默认吧.h头文件换成文件内容,所以,实际上你还是一个文件中。
而这里所说得静态成员不能在其他文件中调用,是说的c文件吧
这里 你就要理解静态成员得意义,可以结合你试着写个静态成员,如何实现声明与定义,以及正确调用。 会发现需要在类外做专门得初始化(想说得是静态成员实际上是编译时就确定了)。
而你定义一个static函数在cpp文件中,cpp文件限制了作用域就是这个文件,static在编译时就初始化作用域这么大,其他文件调用不到吧~
可以对比extern来理解这个。
====》有点没条理 想到就这样说了,希望帮到你~~~