C++ const对象如何在多文件之间共享

因为const类型的特殊性,所以只能在所定义的文件你使用,即使是在多个文件里面定义了,在运行时也会被看做是不同的变量,


我们要解决的问题是在只在一个文件中定义const而在多个文件中声明并使用它,


解决办法: 对于const变量不管是定义还是声明,都在前面添加 extern关键字,

                 // file_1.cc

extern const int bufsize = fcn();

//file_1.h

extern const int bufsize ;//与file_1.cc中定义的是同一个


如果想在多个文件件共享const 对象,必须在变量定义之前添加extern

哎呀,后来博主有自己是了一下,发现还是有一些东西可以挖的,顺便挖一下啊

贴地址:http://tieba.baidu.com/p/3230349640

http://bbs.csdn.net/topics/360106665

http://blog.sina.com.cn/s/blog_76fbd24d0101a62k.html


恩,搞明白了啊,这个c++啊,跟C语言不大一样啊,他好像在创建工程时不需要#include“文件名”的样子,直接用extern声明一下就好,这是之前老有冲定义的原因
下面是我的代码,
test.h


#include<iostream>
using namespace std;


extern const int test;
int sss = test;
int ccc()
{
cout<< sss<<endl;
return 0;
}




testforvs2012.cpp


#include <iostream>
using namespace std;
extern const int test =32;
extern int sss;
extern int ccc();
int main()
{
cout<<test<<sss+3<< endl;
ccc();
int c=0;
cin>>c;
return 0;
}


恩,解决了const在多文件之间共享的问题,但是代码很难看,

好了,贴一下,最后的代码,一下午就纠结这一个问题,

test.h

#include<iostream>
using namespace std;


extern const int test;


int ccc();


testforvs2012.cpp



#include "test.h"
#include <iostream>


using namespace std;
extern const  int test =32;
int ccc()
{
cout<< test<<endl;
return 0;
}


int main()
{

cout<<test<<test+3<< endl;
ccc();
int c=0;
cin>>c;
return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值