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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章