全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1098
推到 Plurk!
推到 Facebook!

名稱空間變數及函數使用.

尚未結案
雲中鵝
一般會員


發表:14
回覆:24
積分:7
註冊:2004-12-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-27 14:42:22 IP:140.125.xxx.xxx 未訂閱
1. 請問我依Ivor Horton's c++教學範本的程式. 將extern 變數放在gobal.h中.再寫一個main.cpp將其include 進來.可是我在Microsoft Visual C++ 6.0中.會發生錯誤,但是在BCB中則可以,請問為何? 我是依下列網址新增Console-mode程式 http://www.csie.ntu.edu.tw/~cprog/Reference/VC__/vc__.html 2. 為何不能將static 變數放在gobal.h? 3. 依下列的程式執行時,為何會產生.變數重覆defined? 謝謝回答 //gobal.h
#include 
int coaut=1;
namespace orz
{
int pi=1;
extern std::string days[]={"sunday","mondays","tuesday"};
}
namespace data
{
extern const  int c_pi=3.141592;
extern const  std::string c_days[]={"sunday","mondays","tuesday"}; //因為string已定義在std的空間中.
}
//extern static  int s_pi=3.141592; //??erorr too many storage classes //in declaration
//extern static  string s_days[]={"sunday","mondays","tuesday"};    //use函數和名稱空間.
namespace compare
        {
        double max(const double *data,int size);//函數宣告
       // double min(const double *data,int size);//to test for_no_""data'size;
        }
 
//extern_function.cpp
#include "gobal.h"
//*.cpp於函數定義.
double compare::max(const double *data,int size)
{
        double result =data[0];
        for(int i=1;i    //extern.cpp
 

#include 
#include 
#include 
using namespace std; //this instruction is named "using instruction"
using namespace orz;
using namespace data;    using compare::max;//使用了函數的宣告,只有此max才使用compare名稱空間.    //extern int pi;
int main(int argc, char* argv[])
{
       int cout=10; //會使cout變成了變數.故當你使用此名稱其已在std的空    //間名稱中時,
//你將需要將其後後的cout=>std::cout           std::cout<
Try it!
------
Try it!
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-28 17:06:31 IP:61.229.xxx.xxx 未訂閱
1 extern 只是用來「宣告」變數或函數;因此後面有值的且移除 2 static 可以放在 include file 內,但是請移除 extern 3 依照上面兩個規則;把實際的變數與其值放在 .cpp 中,即可
雲中鵝
一般會員


發表:14
回覆:24
積分:7
註冊:2004-12-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-29 23:42:49 IP:140.125.xxx.xxx 未訂閱
請問....為什麼還是會發生錯誤呢? 你是指在使用extern 變數時,是不可加上初始值地. 我照你的方法去試,但是還是出現了. d:\c語言於演算法及data structs\vc\what_using\extern_test\gobal.h(4) : error C2146: syntax error : missing ';' before identifier 'days' d:\c語言於演算法及data structs\vc\what_using\extern_test\gobal.h(4) : error C2501: 'string' : missing storage-class or type specifiers d:\c語言於演算法及data structs\vc\what_using\extern_test\gobal.h(4) : fatal error C1004: unexpected end of file found 謝謝回答 Try it!
------
Try it!
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-31 22:38:00 IP:221.169.xxx.xxx 未訂閱
你的錯誤訊息應該是說不認得 string 這個型別    請在前面的地方加上 
#include 
using namespace std;
發表人 - justdo 於 2005/07/31 22:39:13
雲中鵝
一般會員


發表:14
回覆:24
積分:7
註冊:2004-12-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-31 23:32:01 IP:140.125.xxx.xxx 未訂閱
....... 對不請.........因為我看到 一個範例而誤導..
------
Try it!
系統時間:2024-05-18 7:32:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!