首页 > 代码库 > 普通函数加上static的作用
普通函数加上static的作用
static加到一个非类成员函数的函数(有点绕口,就是普通函数。因为类成员函数的static版本有其他的用途)前面,相当于匿名空间的作用——信息隐藏。翻译成白话版就是,只有在当前编译单元中可以被看到,而在别的编译单元中看不到。(什么是编译单元?就是一个展开了包含了头文件的cpp文件)
看下面的两段代码:
function.cpp:
static void function(int &a){ a++;}
main.cpp:
#include<iostream>extern void function(int&);int main(){ int a=0; function(a); std::cout<<a<<std::endl; return 0;}
编译器报错:main.obj : error LNK2019: 无法解析的外部符号 "void __cdecl function(int &)"
(题外话:extern void function(int) 和extern void function(int &)不是同一个函数声明!这里一定要注意)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。