1樓:
沒有衝突,他們是變數,不存在優先順序的問題,但是他們的生存期不同,使用時,**的形式也不同。比如:類poin的物件為m_poin,裡面有成員變數a,主函式中也有變數a,那麼我們使用時,a=2,指的就是主函式中的變數a,而m_poin.
a=2指的則是類的物件中的成員變數a.成員函式中的變數只在呼叫函式時生存,並且是函式自己使用,我們只需呼叫成員函式即可,不用關心(事實上根本無法使用)成員函式內部的變數如何產生或消亡。
2樓:匿名使用者
在主函式中例項化一個類的物件並呼叫其方法,變數的可見性依次為方法中的變數,類的成員變數,呼叫函式變數,相同型別的變數,可見性高的會覆蓋掉低的。比如你在方法,類,呼叫函式中均宣告瞭變數a,方法中可以用a=10,來初始化方法中的變數a,this->a=10,可以用來初始化類中的變數a,呼叫函式中的變數在類和方法中是不可見的,因此無法訪問。
3樓:城郊園
沒有,成員函式中的變數僅限於函式中可以不賦初值,類中定義的變數應用於整個類,需要賦初值
優先權大,然而儘量不要重名。
4樓:匿名使用者
根據作用域來的,具體查資料。
5樓:漸漸的討厭喧鬧
一般情況下,沒人會重新命名的。這樣做是不正確的。 為了方便以後修改,建議你不重複,這樣有利於以後修改。衝突還是會有的,可能導致程式無法正常執行。
c++中,在類外和類內定義一個同名變數,這兩個變數有什麼關係
6樓:匿名使用者
作用域不一樣,類內的變數會覆蓋類外的變數。所以在類內若要訪問類外同名變數,必須顯式指定其作用域.例如
int x;
class a}
7樓:匿名使用者
在類內使用的是叫區域性變數
類外是全域性變數
兩個互不相關
c++在標頭檔案中宣告一個類,但是在主函式定義該類的變數時卻出錯了。怎麼回事? 20
8樓:匿名使用者
因為實現和使用在一個檔案中,這裡不允許用值引用(防止迴圈定義),可以用指標代替。
寫成 clock *b = new clock();
9樓:匿名使用者
你確定標頭檔案名稱沒有錯誤嗎? 另外 main函式沒有return
c++類中定義了公有資料成員變數,同一個類那其他函式能在定義方法的時候用相同的名字嗎?
10樓:匿名使用者
可以的,這其實就是變數作用域的範疇。b中定義區域性變數c,這時候直接使用c就是本地新定義的c,如果要用類的成員變數c要加作用域。
c++中,定義的類中成員可以是函式的呼叫嗎?可以是變數之間的複製嗎?
11樓:匿名使用者
沒太看懂你的問題,建議對類的概念再體會體會。
類中主要由兩部分構內
成:成員變數和成員函容數。變數描述類的屬性,而函式則是類的功能。
當然,成員變數也可以是其他類的物件,你也可以在成員函式中呼叫其他類的公有成員函式,這些屬於類與 類之間的組合和依賴。
建議寫幾個類封裝的程式,再用類建立多個物件,體會類與物件的關係、建構函式和解構函式;然後再派生子類,用子類再建立子類物件,體會複製建構函式、多型等概念;在此基礎之上,再學習類之間的關聯、依賴、泛化、組合等概念。
c++中將一變數在一函式中定義為區域性靜態變數,可以再把這個變數在主函式中定義為動態變數嗎?它的值在
12樓:go無法呼吸的魚
不可以。c++的作用域從來沒有聽說過能夠後期更改的,變數的作用域在宣告的時候就已經確定,你只能更改它的值,卻不能更改它的作用域。下面舉個例子理解區域性靜態變數和動態變數:
1.首先理解區域性靜態變數:區域性靜態變數只初始化一次,該區域性靜態變數生命週期貫穿函式(該宣告所在)呼叫之後的時間。為了更加清楚,舉個例子,右邊為執行結果
2.理解主函式的動態變數:動態變數的生存週期只在主函式的花括號內,而且必須宣告後才能夠使用
3.不能夠在主函式中訪問其它函式的區域性靜態變數,結果會報錯
4.不能在同一個作用域裡宣告多個同名變數,但如果是巢狀關係,會導致覆蓋,例子如下:
注意事項:
不管是什麼型別的變數,我們都得注意它的作用域,以及它初始化幾次,不然會在這種小地方犯錯,導致整個專案有問題,而且排查起來很煩人。
13樓:匿名使用者
一個變數被定義出來的之後,型別就無法修改了,不過你可以再定義一個變數進行其他的操作。反正一個變數型別是無法改變的,但是可以轉換,只不過需要有一個轉換目標,這就需要用到另外一個已定義的變數了
14樓:匿名使用者
主函式的動態變數會把主函式中對這個變數的訪問都導向到主函式裡的這個動態變數。所以不會出現兩個的情況。
如下**:
#include
void fun()
intmain(void)
輸出結果為
in main i=9
in fun () i=8
after fun in main i=9可證明
請教一下:c++類中private定義的變數怎麼在類成員函式中用?
15樓:匿名使用者
你的意思是不是怎麼給name賦值?
可以用建構函式
或者用個輸入函式
class home
//建構函式
void input();
void buy(int num,double price);
void show( );
};void home::input( )
16樓:匿名使用者
你這不就是直接是個例子了嗎?
private宣告的成員變數就是在所有成員函式內都能訪問,但是不能被外部訪問.
17樓:匿名使用者
可以有兩種方式呼叫成員函式,一種是
物件名.函式名(引數)就像樓主給你那樣,home1.buy(6,300)
一種就是定義物件指標
例如home *p;
p->buy(6,300);
18樓:匿名使用者
這一個就是一個很好的例子
c類後面方括號是什麼情況,C 中 類和屬性前面的方括號是什麼意思
一顆程式猿 第一,你少了個new 第二,console的定義是static 不可以被例項化 上面那個只是將類序列化了,序列化的作用在於序列是指將物件的例項狀態儲存到儲存 的過程。在此過程中,先將物件的公共欄位以及類的名稱 包括類的程式集 轉換為位元組流,然後再把位元組流寫入資料流。在隨後對物件進行反...
C 中類的定義可以巢狀嗎,c 中函式的定義和呼叫都可以巢狀嗎
芃芃 1 類的定義是可以巢狀的 2 在函式中可以定義類,但是意義不大,因為在函式中定義類,你只能在這個函式中使用這個類,其他的函式是沒法用的,所以一般不會把類的定義放在函式中,但是這並沒有錯,能編譯過,也就是說作用域只在函式。 周德群 不行,在函式中不能定義類,類可以包含函式,但是函式不可能包含類,...
C如何定義類型別的陣列,C 中如何定義類的陣列,以及給他們賦值?
student 學生物件的陣列 liststu new list 學生物件的集合 c 中自定義類陣列和結構陣列的使用 發現很多時候給定的陣列要實現某個邏輯或處理很是麻煩,一維陣列,二維陣列,等等需要經過n多轉換,還不如自己寫一個自定義陣列,既方便又節省時間,以下是類陣列,其實相當於定義了一個實體類一...