※ 引述《quota@kkcity.com.tw (我要出清)》之銘言:
: 我不太瞭解
: CBox(double lv = 1.0, double bv = 1.0, double hv = 1.0): m_Length(lv),
: m_Breadth(bv),
: m_Height(hv)
: {
: cout << endl << "Constructor called.";
: }
: 建構子這裡的宣告是代表什麼?
: 因為lv=1.0 後面又有m_Length(lv) 那我的lv值到哪裡去呢?
這是直接(正確說來是透過呼叫其建構子)把參數值設定給成員變數
以上例來說就是 把lv指定給m_Length, bv指定給m_Breadth, hv指定給m_Height
lv=1.0這是函數的預設值 當沒有指定時會用預設值代入
再看一個例子:
class x
{
int M;
public:
x(int n): M(n) {}
};
class y
{
x D;
int Z;
public:
y(int u, int v): D(u),Z(v) {} //注意這一行
};
int main(void)
{
y Y(5,6);
return 0;
}
在y裡面要初始化這個x的變數 必須要以這個方式
如果把D(u)拿掉 compiler會用x的default constructor (沒有參數的) 來初始化它
然後就會抱怨找不到default constructor
--
実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」
亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」
実琴:「難道你沒有男人的尊嚴了嗎?!」
亨:(斷然道)「沒有。在節衣縮食且生活吃緊的學生面前,沒有那種東西。」
--プリンセス・プリンセス 第二話
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.197.112