Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

請問:宣告class時需要包含另一個class物件

0 views
Skip to first unread message

放縱書海

unread,
Feb 6, 1999, 3:00:00 AM2/6/99
to
當在宣告一個class時
需要包含另一個class的物件
譬如一個汽車物件包含輪胎物件
但這個被包含進來的物件需要建構元的參數
可是在宣告時所有的變數是不可給定一個常數的
那該怎麼辦?

--
[m※ 來源:‧ [1;34;47m成大工科忘情小築 [0m bbs.es.ncku.edu.tw‧[FROM: h86.s228.ts.hin] [m [40m

Talk__戰將

unread,
Feb 6, 1999, 3:00:00 AM2/6/99
to
==> 在 waterhe...@bbs.es.ncku.edu.tw (放縱書海) 的文章中提到:

> 當在宣告一個class時
> 需要包含另一個class的物件
> 譬如一個汽車物件包含輪胎物件
> 但這個被包含進來的物件需要建構元的參數
> 可是在宣告時所有的變數是不可給定一個常數的
> 那該怎麼辦?

看來你是須要 construcor 的initialization list
你可以在initialization list呼叫member data 的 construcor
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>

人間失格

unread,
Feb 6, 1999, 3:00:00 AM2/6/99
to
【 在 qpwoei...@cis.nctu.edu.tw (Talk__戰將) 的大作中提到: 】
: ==> 在 waterhe...@bbs.es.ncku.edu.tw (放縱書海) 的文章中提到:

: > 當在宣告一個class時
: > 需要包含另一個class的物件
: > 譬如一個汽車物件包含輪胎物件
: > 但這個被包含進來的物件需要建構元的參數
: > 可是在宣告時所有的變數是不可給定一個常數的
: > 那該怎麼辦?
: 看來你是須要 construcor 的initialization list
: 你可以在initialization list呼叫member data 的 construcor

或是物件成員宣告成指標,
在 ctor 中配置時叫用它們的 ctor

[m [1;31m※ 來源:台北科技大學紅樓資訊站 redbbs.cc.ntut.edu.tw‧[FROM: ppp7218.cc.ntut.edu.] [m

傲笑紅塵是主角

unread,
Feb 6, 1999, 3:00:00 AM2/6/99
to
==> 在 snok...@redbbs.cc.ntut.edu.tw (人間失格) 的文章中提到:
: 【 在 qpwoei...@cis.nctu.edu.tw (Talk__戰將) 的大作中提到: 】
: : 看來你是須要 construcor 的initialization list

: : 你可以在initialization list呼叫member data 的 construcor
: 或是物件成員宣告成指標,
: 在 ctor 中配置時叫用它們的 ctor
: [m [1;31m※ 來源:台北科技大學紅樓資訊站 redbbs.cc.ntut.edu.tw‧[FROM: ppp72

Re:你可以去翻番侯俊傑的"虛擬與多型",在第一章就有提到你要的東西

你可以在書局站著看就好了,若你覺得好就買一本吧,我覺得寫的很好

因為你要問的東西我可能要花一點時間打,我比較懶~~~~
--
半涉濁流半席清
倚箏閒吟廣陵文
寒劍默聽君子意
傲視人間笑紅塵

Desperado

unread,
Feb 7, 1999, 3:00:00 AM2/7/99
to
==> 在 waterhe...@bbs.es.ncku.edu.tw (放縱書海) 的文章中提到:
> 當在宣告一個class時
> 需要包含另一個class的物件
> 譬如一個汽車物件包含輪胎物件
> 但這個被包含進來的物件需要建構元的參數
> 可是在宣告時所有的變數是不可給定一個常數的
> 那該怎麼辦?

從你的語意我不太了解你想問的是什麼, 以下的方式
是讓你construct car 時先construct wheels

class wheel
{
int radius;
public:
wheel(int r) { radius = r; }
~wheel();
...
};

class car
{
wheel frw;
wheel flw;
wheel brw;
wheel blw;
...
public:
car(int frwr, int flwr, int brwr, int blwr);
~car();
...
};

car::car(int frwr, int flwr, int brwr, int blwr) :
frw(frwr),flw(flwr), brw(brwr), blw(blwr)
{
...
}
--

[1;46mE-mail Addr: y...@bcc01.cycu.edu.tw [0m [44;1m [5m ( 馬特.溫 ) [0m

0 new messages