善于利用C++语言特性编码(1)

函数重载是C++的一个很实用的特性,我们要好好的利用.由于工作内容的调整,我己经很久没有接触过C++了,
但是对于它的热爱却是从来降低过,最近一位"失踪"近一年多的网友突然出现在MSN上,而且一上来就要我帮
它一个忙,连个嘘寒问暖的前奏也没有,呵呵~~后来慢慢的了解到,它最近出国读书了,而且换成法律专业了,
晕倒~~不过,他现在和我一样,对于C++的也是割舍不掉!(心虚ing,最近起妈一直在学think in java)

问题是这样的:他原来写过一个MFC程序,大意在一个多文档程序最后关闭时,要在其所关闭的文档添加它的姓名及
还要在其上面留下一名很是肉麻的句子:谢谢您下次使用!其实函数定义如下:
void TMUiDocuPrint::drawGoodBye(const CString m_sentence,Point position)
{
 const *focusdoc = GetFoucsDoc();
 //to do something what you want
}
看到他的程式,估计他只对于当前激话的文档调用了该函数,现在要实现调用未激活的文档也要
打印致辞词~~
实现其来到是很简单,只有把函数换一下形式就可以了:
void TMUiDocuPrint::drawGoodBye(const *focusdoc = GetFoucsDoc(),const CString m_sentence,Point position)
{
 //to do something what you want
}

每个调用这个函数的文档,把指字指传过来就可以了,
这里用到了函数的重载特性,以其参数来重载,剩下的工作就是ctrl + f,然后替换了!!!
改过去后,第二天,MSN上又见他了,说是想法变了,因为是共享软件,不想把用户所有打开的文档又打上致辞语~
不想因为用户的报怨~~(我们这些coder就是在这种变化中生存ing)

不过实现起来也是很简单的,C++语言特性提供的参数默认值正好派上用途了~`
void TMUiDocuPrint::drawGoodBye(const CString m_sentence,Point position,const *focusdoc = GetFoucsDoc())
{
 //to do something what you want
}

愿意传过来,我就接受一下,不原因我自己来得到一个即可~~~

我们在开发中,一定要注重语言内置的功能的利用,像这样,他原来写的函数虽然能用,但是不能通用,
而重新写的代码却是可重用的.
多说两句:人们对于MFC总是充满怨言,但是我保下我自己的看法,MFC在当时的背景下,绝对是种精品,
像设计模式,C++的一些内置语言的功能的利用,是我们学习的榜样. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值