精華區beta Programming 關於我們 聯絡資訊
※ 引述《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