Re: [問題] 全域變數宣告在哪?

看板C_and_CPP (C/C++)作者 (嵐)時間16年前 (2009/05/10 16:27), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串3/3 (看更多)
野人獻曝一下 :) 如我之前略提,CLR我沒碰也不想碰,問題是否出在那裡就不評論了.. 下面三個檔案分別存成main.cpp, header1.hpp, header2.hpp, 希望這有幫助 //main.cpp #include "header1.hpp" #include "header2.hpp" #include <iostream> using namespace std; int a; // global a, initialized as 0 int main() { cout << "a = " << a << "\n"; cla1 c1; c1.touch_a(); cout << "a = " << a << "\n"; cla2 c2; c2.touch_a(); cout << "a = " << a << "\n"; } // EOF of main.cpp //header1.hpp extern int a; class cla1 { public: void touch_a() { a = 1; } }; // EOF of header1.hpp //header2.hpp extern int a; class cla2 { public: void touch_a() { a = 2; } }; //EOF of header2.hppC -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 91.92.165.253

05/10 17:00, , 1F
其實我覺得在OO Language裡 應該可以盡量少用全域變數
05/10 17:00, 1F

05/10 17:32, , 2F
我也不想碰CLR.....無奈
05/10 17:32, 2F

05/10 17:38, , 3F
如果要共用array..上面的方法應該都可吧
05/10 17:38, 3F

05/11 02:14, , 4F
同意一樓 用全域的話個人想法是會考慮singleton+mutex
05/11 02:14, 4F
※ 編輯: dove1706 來自: 91.92.165.253 (05/17 07:31)
文章代碼(AID): #1A1e_tCC (C_and_CPP)
文章代碼(AID): #1A1e_tCC (C_and_CPP)