作者dendrobium (石斛蘭)
看板C_and_CPP
標題Re: [問題]有關class的小問題(c++)
時間Sun Feb 15 22:29:03 2009
※ 引述《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
→ starmovie:可是D大好像沒改set_data()~我主要想改這個= = 02/15 22:46
→ starmovie:不過還是謝謝D大的回應~ 02/15 22:46
→ cfbbq:friend void set_data(char i,int w,int h,const CWin& cw) 02/15 22:54
→ starmovie:請問一下是把win1當成set_data引數,然後裡面內容寫 02/15 23:11
→ starmovie:cw.id=i 類似這樣的嗎? 02/15 23:11
→ dendrobium:既然是set data, cw就不會是const啦 02/15 23:15
→ dendrobium:你寫寫看就知道囉 不難滴~ 02/15 23:16
→ starmovie:嗯嗯~謝謝阿 02/16 01:06
→ cfbbq:sorry,沒注意看,沒有const。 02/16 09:21