重温了一下 Effective C++,发现这就是条款24所指出的问题,看来读书百遍不如写代码一遍啊在Notify处理消息时会有很多if语句,我通常喜欢把常量放在双等号前面,变量放在后面,比如: if( _T("click") == msg.sType ) { }但是却发现并没有进到这个if里,调试...
分类:
其他好文 时间:
2014-06-23 08:23:09
阅读次数:
407
(一)
有个class来表示网页浏览器:
class WebBrowser {
public:
void clearChache();
void clearHistory();
void removeCookies();
};
许多用户会想一整个执行所有这些动作,因此WebBrowser也提供这样一个函数:clearEverything
class ...
分类:
编程语言 时间:
2014-06-22 21:46:40
阅读次数:
147
(一)为什么不采用public成员变量
(1)首先,从语法一致性考虑,客户唯一能访问对象的方法就是通过成员函数,客户不必考虑是否该记住使用小括号()。
(2)其次,使用函数可以让我们对成员变量的处理有更精确的控制。如果我们令成员变量为public,那么每个人都可以读写它!
但如果我们以函数取得或设定其值,我们就可以实现出“不准访问”、“只读访问”以及“读写访问”,我们甚至可以实现“惟写访...
分类:
编程语言 时间:
2014-06-21 22:13:56
阅读次数:
232
一本不错的书,给出了52条建议来优化程序的性能,对初学者有不错的指导作用,但是对高级阶段的程序员可能帮助不是很大。这里贴出部分笔记:第2条:使用#improt导入头文件会把头文件的内容全部暴露到目标文件中,而且如果两个类之间存在循环引用则会出现编译错误,所以要尽量使用@class进行类声明。如果需要...
分类:
其他好文 时间:
2014-06-19 00:21:53
阅读次数:
262
(一)
一定要避免传递一些references去指向其实并不存在的对象。
看下面这个类:
class Rational {
public:
Rational(int numerator = 0, int denominator = 1);
private:
int n, d;
friend const Rational operator*(const Rat...
分类:
编程语言 时间:
2014-06-16 19:09:14
阅读次数:
269
此问题针对百度地图真机调试和模拟器.a文件的选取问题
"$(SRCROOT)/MobileYonyou/Third/BaiduMap_IOSSDK_v2.3.0_Lib/Release$(EFFECTIVE_PLATFORM_NAME)"
这样就可以根据运行环境自动选取.a文件.
-- "$(SRCROOT)/MobileYonyou/Third/BaiduMap_IOSSD...
分类:
其他好文 时间:
2014-06-16 18:43:31
阅读次数:
207
(一)
调用函数的时候如果传递参数pass-by-value,那么函数参数都是以实际实参的副本为初值,调用端所获得的亦是函数返回值的一个复件。
看下面代码:
class Person {
public:
Person();
virtual ~Person();
private:
string name;
string address;
};
...
分类:
编程语言 时间:
2014-06-16 14:57:30
阅读次数:
184
请注意:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class。
分类:
编程语言 时间:
2014-06-16 13:42:35
阅读次数:
349
请记住:(1)析构函数绝对不要吐出异常。如果一个析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下它们或结束程序。(2)如果客户需要对某个操作函数运行期间的异常作出反应,那么class应该提供一个普通函数(而非在析构函数中)执行该操作。
分类:
编程语言 时间:
2014-06-15 12:48:58
阅读次数:
171
请记住:(1)polymorphic(带多态性质的)base classes应该声明一个virtual析构函数。如果class声明一个virtual函数,它就应该拥有一个virtual析构函数。(2)class的设计目的如果不是作为base classes使用,或不是为了具备多态,就不应该声明vir...
分类:
编程语言 时间:
2014-06-14 20:19:05
阅读次数:
221