看板 EE_DSnP 關於我們 聯絡資訊
※ 引述《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
Knossos:再接續以上,那如果這class沒有constructor去initialize, 10/21 07:44
Knossos:那是不是就沒辦法這樣直接傳輸?因為不知道要傳什麼變數? 10/21 07:45
ric2k1:不懂, 沒有寫 constructor 那就不用傳參數而直接使用 10/21 09:59
ric2k1:default constructor 啊! 10/21 10:00
ric2k1:傳給 copy() 的是一個物件 'a', 他應該先前就被 construct 10/21 10:08
Knossos:如果今天class沒有construct,那這樣傳入的object是把所有 10/21 20:28
Knossos:的data member全部傳入嗎?還是都不傳入? 10/21 20:29