1樓:匿名使用者
1 c++杜絕全域性變數。
2 c++也不建議把成員變數設定為public。(而且簡單的pubic設定和全域性化也沒有任何關聯,估計你想要的是static的public變數)
不知道你為什麼會有這類問題,c++看待角度應該和c有截然不同的視角,不要用c的想法去套c++。
我無法估計你要什麼,我只能估計給個建議:
1 如果你需要全域性訪問的物件(注意,儘可能不用變數來描述),可以參考使用單例模式的類設計。
2 最好的方法,還是將需要全域性訪問的內容轉換為非全域性訪問。
3 上面兩個之間的權衡沒有絕對標準,一般以2為主導,1的方法只適合橫向切入系統的類設計,例如日誌類、配置類等。(其實,也可以進行非全域性融入)
如果你願意,可以把你的具體問題羅列一下,我給點建議。
2樓:匿名使用者
全域性的變數 只需在標頭檔案直接宣告就可以全域性使用了。
使用public類的話還要宣告建立一個全域性的類物件,才能在全域性訪問。
兩個相比的話沒有什麼好壞之分,自己能用的順手才是最好的。
3樓:周生
public成員變數
因為全域性變數作用範圍太大,可能會汙染名字空間
但是public的類成員的作用範圍只在類裡邊,是有限制的
4樓:匿名使用者
c++全域性變數 跟c中的全域性變數一樣
public的類成員變數 跟c中的結構體變數一樣
這好不好,就看你如何設計你的程式. c++與c不一樣,c++是物件導向的.
5樓:匿名使用者
public成員變數 必須必~
c++中,對於類,如果不用全域性變數,定義一個物件。不能使用全域性變數,問題如下 20
6樓:成都
#include
#include
#include
using namespace std;
const int name_len=32;
class a
;char a::name = "\0";
void fun1()
{a a;
strncpy_s( a.name, "xiaoming",name_len);
std::cout<
如果不是作為引數也不希望通過全域性變數,那你可以考慮用靜態變數來嘗試,以上**僅供參考。
7樓:匿名使用者
class a
;void fun1()
void fun2(a &a)
void fun2(a a)
void fun2(a *a)
全域性變數的使用問題,全域性變數的使用注意
1,使用全域性變數會占用更多的記憶體 因為其生命期長 不過在計算機配置很高的今天,這個不稱為什麼問題,除非使用的是巨大物件的全域性變數,能避免就一定要避免。2,使用全域性變數程式執行時速度更快一些 因為記憶體不需要再分配 同樣也快不了多少。3,對於區域性變數的名字空間汙染,這個在不使用太多變數時是可...
c 全域性變數的問題,C 如何宣告全域性變數
定義應該放在。cpp檔案中。標頭檔案中是。extern 宣告,不是定義。定義放在標頭檔案,那包含此標頭檔案的。cpp都定義了此變數了,還不是多重定義嘛。你將你定義的全域性變數改為靜態的試試。應該是變數的鏈結性問題!如何在c 中設定全域性變數?1 首先,定義乙個實現加法運算自定義函式。2 接著,定義乙...
c語言標頭檔案包含 全域性變數使用問題
c語言在標頭檔案中包含全域性變數有三種形式 1 在標頭檔案中宣告乙個全域性變數,在乙個c檔案中定義全域性變數,然後在所有的引用了這個標頭檔案的c檔案裡都可以使用該全域性變數值。如在main.c定義 int a 3 然後定義乙個main.h,那麼所有引用main.h的c檔案中,均可以訪問a並更改其值。...