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)
怎樣使C語言全域性變數在多個檔案中使用
extern 關鍵字 extern int i 這樣就可以在其他檔案中使用在標頭檔案中宣告版 a.hextern int i 在其他某 個c檔案中定義權 int i 0 其他要使用i變數的c原始檔只需要include a.h 就可以 c語言中如何在多個檔案中引用同一個結構體 把結構體定義在一個公共標...
python使用多程序時,全域性變數改了,為什麼在函式a中值沒
在子程序引用宣告變數的模組,然後直接用.引用就更新了 用python的tkinter中的按鈕,繫結的事件如何更改全域性變數的問題 from tkinter import def changestringvar a.set changed print a.get 在這print a.get 就能列印在...
C語言靜態區域性變數和全域性變數有什麼區別,不都是在整個程式中都
1 靜態區域性變數在函式內定義,但不象自動變數那樣,當呼叫時就存在,退出函式時就消失。靜態區域性變數始終存在著,也就是說它的生存期為整個源程式。2 靜態區域性變數的生存期雖然為整個源程式,但是其作用域仍與自動變數相同,即只能在定義該變數的函式內使用該變數。退出該函式後,儘管該變數還繼續存在,但不能使...