作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] 關於parameter of member function的問題
時間Sat Oct 20 23:04:15 2007
※ 引述《Knossos (蒼天已死黃天當立)》之銘言:
: 標題: [問題] 關於parameter of member function的問題
: 時間: Sat Oct 20 20:52:36 2007
:
: Homework_3第三題的(d)中,要求我們提供一個函數:void add(DoubleInt dInt),
: 函數需要的parameter是class DoubleInt的object,這裡我不太懂。
:
: 當我們使用a object of a class時,不是應該透過函數嗎?這裡直接要求argument是
: a object of the class,那這時候這個object究竟會送入什麼資料?member data?可是
: 要如何表示?如何儲存?
:
: Ps. 程式寫到這裡就卡住了XD。求救啊~!
:
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 220.139.235.157
: 推 flarehunter:parameter應該是傳入另一個DoubleInt的物件吧 10/20 21:55
舉個例子:
class A
{
public:
A(int i) { _data = i; }
void copy(A a) { _data = a._data; }
private:
int _data;
};
int main()
{
A a1(13);
A a2;
a2.copy(a1); // a1's data will be copied to a2.
}
以上給大家參考.
以下, 則是 FYI. 給進階者, 不過我們不久以後也會教...
class A
{
...
// 可避免 a 的資料被改變, 並且少一次 copy 的動作
void copy(const A& a) { _data = a._data; }
...
};
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.134.53
1F:推 Knossos:再接續以上,那如果這class沒有constructor去initialize, 10/21 07:44
2F:→ Knossos:那是不是就沒辦法這樣直接傳輸?因為不知道要傳什麼變數? 10/21 07:45
3F:推 ric2k1:不懂, 沒有寫 constructor 那就不用傳參數而直接使用 10/21 09:59
4F:推 ric2k1:default constructor 啊! 10/21 10:00
5F:推 ric2k1:傳給 copy() 的是一個物件 'a', 他應該先前就被 construct 10/21 10:08
6F:推 Knossos:如果今天class沒有construct,那這樣傳入的object是把所有 10/21 20:28
7F:→ Knossos:的data member全部傳入嗎?還是都不傳入? 10/21 20:29