简介
RT
参考资料
C++语言的设计与演化
code
一种方式是 定义多个函数对于默认参数的不同提供特定的不同的默认参数
class colored_window : public window {
public:
colored_window(color c=black):window(standard,0,0, 100, 100,c) { }
};
class bordered_window : public window {
public:
bordered_window(border b=single, color bc=blue)
:wlndow(standard,0,0,100,100,black,b,bc) { }
};
另一种技术是提供一些显式操作去修改对默认参数的设置
class w一
args {
wintype wt;
int ulcx, "
ulcy/ xz, yz;
color wc7 be;
border b;
WSTATE ws;
public:
w
—
args() // set defaults
: wt(standard), ulcx(0), iilcy(0), xz(100), yz(100),
wc(black), b(single), be(blue), ws(open) { }
// override defaults:
w_args& ysize(int s) { yz=s;return *this;}
w_args& Color(color c) { wc=:c; return *this; }
w_args& Border(border bb) { b = bb;return *this;}
w_args& Border_color(color c) { bc=c; return *this; }
};
class window {
window(v_args wa);// set options from wa
};
window w;/ / default window
window w( w_args().Color(green).ysize(150) );
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》