作者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