李sir_Blog

博客园 首页 联系 订阅 管理

2011年1月24日

摘要: 静态数据成员:下面看一个例子:#include iostream.hclass Point{public:void output(){}static void init(){}};void main( void ){Point pt;pt.init();pt.output();}这样编译是不会有任何错误的。下面这样看#include iostream.hclass Point{public:void output(){}static void init(){}};void main( void ){Point::output();}这样编译会处错,错误信息:illegal call o 阅读全文
posted @ 2011-01-24 19:45 李sir 阅读(4890) 评论(0) 推荐(1)

摘要: 类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义(初始化)不应该被放在头文件中。 其定义方式与全局变量相同。举例如下: xxx.h文件 class 阅读全文
posted @ 2011-01-24 15:28 李sir 阅读(103427) 评论(3) 推荐(17)

摘要: 听过无数次不要TerminateThread,只是工作中常用,貌似也没有什么问题。今天在高强度测试中发现了一个不可原谅的错误。参看下面的例子DWORD __stdcall mythread(void* ){ while( true ) { char* p = new char[1024]; delete p; }}int _tmain(int argc, _TCHAR* argv[]){ HANDLE h = CreateThread(NULL, 0, mythread, NULL, 0, NULL); Sleep(1000); TerminateThread(h, 0); h = NULL; 阅读全文
posted @ 2011-01-24 10:21 李sir 阅读(923) 评论(0) 推荐(0)