码迷,mamicode.com
首页 > 其他好文 > 详细

普通函数加上static的作用

时间:2014-07-03 19:59:57      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   文件   os   cti   

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 &)不是同一个函数声明!这里一定要注意

 

普通函数加上static的作用,布布扣,bubuko.com

普通函数加上static的作用

标签:style   blog   color   文件   os   cti   

原文地址:http://www.cnblogs.com/wangpei0522/p/3821145.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!