c 中成員變數與成員函式的呼叫疑問?請高手指導

時間 2021-09-12 00:10:22

1樓:匿名使用者

看來你對物件導向程式設計還不瞭解,介紹你先學學c++的基礎語法,再看孫鑫的vc++。

m_edit1是一個物件,getwindowtext是這個物件的方法。就比如有個學生型別的物件 stu,學生有個行為是“學習”,在程式裡你想讓它學習的話就要用 stu.學習() 告訴計算機我想讓這個學生學習。

你舉的例子中 m_edit1就是一個物件,m_edit1.getwindowtext() 就是說我要呼叫m_edit1這個物件的getwindowtext方法得到控制元件的windowtext

2樓:匿名使用者

加上.點操作符的,不是因為他是成員變數,而是因為它本身就是一個類!

如果不是類,那麼它無論是什麼形式的成員變數,都不能加上點操作符。

你應該注意到課堂上講過,點操作符和->操作符,前面可以是類和結構體,後面是成員。這個是一樣的意思。m_edit1是一個ceditctrl型別的控制元件變數,而ceditctrl是一個控制元件視窗類。

3樓:匿名使用者

因為m_edit1是一個物件,一個類可以有多個類似的物件。在使用成員變數的時候需要指明是呼叫哪個物件的函式。所以要m_edit1.

c++類中的定義的變數是什麼屬性?和主函式中直接定義的變數有衝突嗎?和類成員函式中的變數有衝突嗎?

4樓:

沒有衝突,他們是變數,不存在優先順序的問題,但是他們的生存期不同,使用時,**的形式也不同。比如:類poin的物件為m_poin,裡面有成員變數a,主函式中也有變數a,那麼我們使用時,a=2,指的就是主函式中的變數a,而m_poin.

a=2指的則是類的物件中的成員變數a.成員函式中的變數只在呼叫函式時生存,並且是函式自己使用,我們只需呼叫成員函式即可,不用關心(事實上根本無法使用)成員函式內部的變數如何產生或消亡。

5樓:匿名使用者

在主函式中例項化一個類的物件並呼叫其方法,變數的可見性依次為方法中的變數,類的成員變數,呼叫函式變數,相同型別的變數,可見性高的會覆蓋掉低的。比如你在方法,類,呼叫函式中均宣告瞭變數a,方法中可以用a=10,來初始化方法中的變數a,this->a=10,可以用來初始化類中的變數a,呼叫函式中的變數在類和方法中是不可見的,因此無法訪問。

6樓:城郊園

沒有,成員函式中的變數僅限於函式中可以不賦初值,類中定義的變數應用於整個類,需要賦初值

優先權大,然而儘量不要重名。

7樓:匿名使用者

根據作用域來的,具體查資料。

8樓:漸漸的討厭喧鬧

一般情況下,沒人會重新命名的。這樣做是不正確的。 為了方便以後修改,建議你不重複,這樣有利於以後修改。衝突還是會有的,可能導致程式無法正常執行。

c++中解構函式在成員函式中的呼叫問題

9樓:

因為第二種方法你沒有定義拷貝建構函式,所以ab operator = (int a)執行完之後,返回的是return *this,會在記憶體中再次構造一個ab的物件,並且把*this指向的物件按位拷貝給這個物件,建立這個物件的時候,會用到x=new int[2]分配一段記憶體。由於有a=3;會再次呼叫按位拷貝函式把這個物件幅值給a,賦值完成後,這個物件析構,所以它的成員被重置為隨機數,a中x所指向的也為隨機數(因為是按位拷貝的)所以輸出為隨機數。你可以把ab operator = (int a)這個函式的返回值改為引用型別,就可以輸出不是隨機數,即:

ab& operator = (int a)

10樓:匿名使用者

賦值運算子改為:

ab& operator = (int a)就ok了。

賦值運算子的返回值不是引用的話,return *this;時會呼叫隱式拷貝建構函式:

ab(const ab &t)

生成類ab的臨時物件,臨時物件析構時,臨時物件的x[0]變為隨機數,因為物件a的x和臨時物件的x的值是一樣的,所以a.x[0]也變為隨機數了。物件a也析構了一次,所以析構了兩次。

c 中解構函式在成員函式中的呼叫問題

因為第二種方法你沒有定義拷貝建構函式,所以ab operator int a 執行完之後,返回的是return this,會在記憶體中再次構造一個ab的物件,並且把 this指向的物件按位拷貝給這個物件,建立這個物件的時候,會用到x new int 2 分配一段記憶體。由於有a 3 會再次呼叫按位拷...

C中在窗體中呼叫另普通類的成員變數不需要例項化類的物件

這個看情況,如果是靜態成員變數的話,是不需要例項化的,否則必須例項化,編譯就不會過嘛。 如果不是靜態類的話,必須要例項化,才可以呼叫。如果是靜態類則可以直接呼叫,類.變數,明白嗎? 資訊蒐集官 你可以宣告一個父類例項化一個子類試試,你把原來的 弄出來我看看。c 為什麼不能在一個類中呼叫另一個類的變數...

c 類中成員函式的問題

1.你這基礎實在薄弱,基本概念都還沒懂 2.下面的void m f1 m m 是對類裡面 static void f1 m m 函式的實現。m m 的意思定義一個m的物件m.也就是這個函式的引數必須是一個m的物件。3.m p 5 q 10 這裡的定義兩個m物件 括號裡的值是傳遞給建構函式的,即呼叫此...