C 成員函式的使用有哪些限制,C 類成員函式什麼情況下必須定義引數?

2022-10-08 07:26:35 字數 3541 閱讀 1171

1樓:匿名使用者

必須為其指標所指向的物件分配記憶體才可以進行strcpy操作。

如果沒有分配記憶體,則:

strcpy(pname,p); 把p複製到**?沒有記憶體存放!

這可能會導致未知的情況發生,程式會崩潰.

以下是修改後的程式。

注:用構造分配記憶體(new),

必須要用析構(delete)釋放記憶體,否則會造成記憶體洩露(memory leak)

#include

#include

class product

~product()

};//*以下為在類外定義的成員函式

void product::pdput()//*/

/*要使類外成員函式成為行內函數,需在函式頭前冠以關鍵字inlineinline void product::pdput()*/void main()

2樓:

第一個pname也不對吧

pname與pnod你都沒有分配記憶體怎麼能strcpy呢?程式執行到 strcpy(pname,p);這裡應該會崩潰吧

pname與pnod都需要分配記憶體

3樓:極天異雲

public:

void pdput(); //類中定義成員函式

product(char *p,char *n,int m) //初始化本類,即定義建構函式

4樓:匿名使用者

為什麼不直接賦值

pname=p;

pnod=n;

c++類成員函式什麼情況下必須定義引數?

5樓:棲鳳婷

在這個程式中,我曾嘗試定義成員函式show()如下:

void myvector::show()

{cout<<"("y,this->z

6樓:匿名使用者

此處x自然就是this->x,按你的想法應該是沒錯的;

把你的錯誤資訊貼出來看

c++專案中的成員函式和全域性函式的使用

7樓:匿名使用者

c++是面嚮物件語言。資料封裝面嚮物件語言最重要的一個特性。在c++中,類是進行封裝和資料隱藏的工具,進行資料和方法封裝的基本邏輯單位。

類中可以定義公有成員、保護成員和私有成員。公有成員可被任何函式訪問;保護成員可被該類的成員函式和相應的友元函式引用;而私有成員則只能為相應類的成員函式和相應的友元函式引用。

一般來說,儘量不要使用全域性函式。可使用類的靜態成員函式取代全域性函式。

8樓:匿名使用者

如果在一個來中使用,就使用似有函式,要是許多類都用,像數

據的流轉,最好用全域性函式來定義

9樓:匿名使用者

首先,你應該明白,所謂類的成員函式,其實並不是類本身的東西,歸根到底其實還是一個有限制了的全域性函式,或者說是個區域性函式,比如

class a

定義了一個這樣的類,sizeof(class a),得到的是8,就是x.y的型別

函式都不計算在內

所以,其實是一樣的,只是放在類中,比較方便理解和分工明確

類中的public函式其實就是一個全域性函式,前提是你要建立一個類的例項

所以,當你要大量用到一個函式的時候,而不想例項化一個類那麼就用全域性函式

如果你這個函式只與類的成員變數有關,那麼你就可以做成成員函式,

但全域性函式不能訪問類的私有成員,必須使用友元函式

c++的成員函式和普通函式

10樓:陽頂天鹿鼎記

類是具有一bai定特性的du,這個對檔案操作就具有一zhi定的特dao性,對檔案進行讀寫,並對內版

容進行處理權,所以這裡可以應用類,那麼這個類的例項就是一個可以對檔案進行操作並且處理的物件。把這些方法封裝起來,用起來比較方便,好管理,如果是c++**,最好是封裝起來變成類,這是c++的特性,用特定的物件完成對應的功能,需要幹什麼,只需要一個類的例項化即可,而c語言是過程性的,可以用到什麼的時候直接呼叫普通函式。

11樓:匿名使用者

類成員的函式還有一個作用就是名稱空間

12樓:匿名使用者

關於成員資料。如果處理的資料結果僅僅是在當前的記憶體中使用版,那就直接使用函式傳遞,也就權是非成員變數,如果當前處理的資料需要傳遞給其它的模組(通常是動態庫dll),那麼最好是將其儲存為成員變數,儲存在公共記憶體區,這樣方便資料的共享。

關於成員函式。如果當前函式僅僅完成一個單獨的任務,不需要呼叫其它函式,則將其設為獨立的與類無關的函式,如果當前函式需要與類內的某些函式互動,則將其設為成員函式。

這些都需要在實戰中思考,才能理解。

13樓:sheldon珊

類,好處;

1 :類封裝性好,可以不被外部呼叫...

2 :用到的時候再例項化..用完直接銷燬不佔記憶體。

至於兩者哪個好還得取決於這段**多麼?呼叫頻繁麼?

個人覺得類會比較好!

個人愚見

編寫c++的靜態成員函式要注意哪些事項,通常有什麼作用

14樓:匿名使用者

設計靜態成員函式的目的是什麼?靜態成員函式相當於c語言中的全域性函式,只不過它屬於那個類.

靜態成員函式只能訪問類的靜態資料成員,不能訪問非靜態資料成員.

靜態成員函式不要濫用,否則背離了物件導向程式設計的初衷.

類的非靜態成員函式可以呼叫靜態成員函式,但是反之則不行。

c++中定義的類,裡面的成員函式可以直接使用嗎?就是在沒有物件的時候。 例如,class裡有一個成 20

15樓:匿名使用者

沒有物件的時候要訪問類成員函式的話,只能訪問靜態成員函式。例如:

class a

}這樣可以在主函式裡直接用

a::abc();

這樣的語句進行呼叫。

16樓:匿名使用者

如果是static函式,可以用類名::abc()來呼叫

如果不是static函式,不可以直接呼叫

17樓:匿名使用者

不可以,唯一的例外是宣告成static 的成員函式可以

18樓:紛採

#include

using namespace std;

class hello

};int main(void)

19樓:匿名使用者

把類名當成名稱空間。

要呼叫的方法,寫成靜態方法,用類名引用。

c++問題,物件包含與成員函式不相容的型別限定符,請教大神

20樓:叛逆百分

void showpair();

改成 void showpair()const;

C包括類的宣告 成員函式的實現

include include class cscore void cscore input int id,char name,int math,int phi void cscore sum void cscore show void main c 成員函式的實現部分 寫在類外 究竟屬於類的內部還...

C 求助什麼叫類體內定義成員函式

class student public void display cou num c 中怎麼理解類內定義的成員函式就是行內函數?當你的class。public成員函式宣告的時候,只要這個函式體當中不存在switch等迴圈語句的時候,則這個函式體無論是在類的內部還是類的外部,這個成員函式在編譯器看來...

c類T,裡面的成員T a建構函式中,a如何

我們把c 11以後的baic 叫做現代c du如果 你用舊c 那zhi麼你dao可以用這版種語法 a t 或權 a 如果你用現代c 那麼儘量使用這種語法 a t 如果要在堆內分配記憶體,加上new 關鍵字。但是一旦使用了new,一定要使用智慧指標unique ptr shared ptr或weak ...