Re: [問題]有關class的小問題(c++)

看板C_and_CPP (C/C++)作者 (石斛蘭)時間16年前 (2009/02/15 22:29), 編輯推噓0(009)
留言9則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《starmovie (盜族)》之銘言: : 以下是原本的程式碼 : #include <iostream> : #include <cstdlib> : using namespace std; : class CWin : { : public: private: : char id; : int width,height; : int area() : { : return width*height; : } : void show_area(void) : { : cout << "window " << id << ", area=" << area() << endl; : } friend void show_area(const CWin & cw) { cout << "window " << cw.id << ", area=" << cw.width*cw.height << endl; } : void set_data(char i,int w,int h) : { : id=i; : width=w; : height=h; : } : void set_data(char i) : { : id=i; : } : void set_data(int w,int h) : { : width=w; : height=h; : } : }; : int main(void) : { : CWin win1,win2; : win1.set_data('A',50,40); : win2.set_data('B'); : win2.set_data(80,120); : win1.show_area(); show_area(win1); : win2.show_area(); : system("pause"); : return 0; : } : 現在想把id,width,height的成員存取屬性改成private : 然後也把set_data()改成friend函數,可是我想很久想不出來怎麼改= = : 麻煩各位大大指點一下= = : 謝謝!! 試試看吧 如果可以的話 可以試著把宣告和定義分開 -- 沒有吧?! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.244.36

02/15 22:46, , 1F
可是D大好像沒改set_data()~我主要想改這個= =
02/15 22:46, 1F

02/15 22:46, , 2F
不過還是謝謝D大的回應~
02/15 22:46, 2F

02/15 22:54, , 3F
friend void set_data(char i,int w,int h,const CWin& cw)
02/15 22:54, 3F

02/15 23:11, , 4F
請問一下是把win1當成set_data引數,然後裡面內容寫
02/15 23:11, 4F

02/15 23:11, , 5F
cw.id=i 類似這樣的嗎?
02/15 23:11, 5F

02/15 23:15, , 6F
既然是set data, cw就不會是const啦
02/15 23:15, 6F

02/15 23:16, , 7F
你寫寫看就知道囉 不難滴~
02/15 23:16, 7F

02/16 01:06, , 8F
嗯嗯~謝謝阿
02/16 01:06, 8F

02/16 09:21, , 9F
sorry,沒注意看,沒有const。
02/16 09:21, 9F
文章代碼(AID): #19c2Qp7K (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19c2Qp7K (C_and_CPP)