C 中使用全域性變數好,還是public的類成員變數好

時間 2021-08-30 10:37:16

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並更改其值。...