2013年8月12日
摘要: 我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看MSDN里面是怎么说的:不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是 阅读全文
posted @ 2013-08-12 21:32 de0319gh 阅读(4247) 评论(0) 推荐(1) 编辑
摘要: 除了性能问题之外,有些时场合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化成员变量的初始化顺序成员是按照他们在类中出现的顺序进行初始化的,而不是按照他们在初始化列表出现的顺序初始化的初始化顺序构造函数初始化列表的变量优先于构造函数(至少明显的写在前面)(若都在初始化列表中初始化,则按声明顺序初始化,与初始化列表中的顺序无关)静态成员变 阅读全文
posted @ 2013-08-12 20:43 de0319gh 阅读(170) 评论(0) 推荐(0) 编辑
摘要: #ifndef _STACK_H #define _STACK_H #pragma oncetemplateclass Stack{public: Stack( void ) : size( 0 ), capacity( 1 ),_( new T[ capacity ] ){} ;//构造函数成员是按照他们在类中出现的顺序进行初始化的,而不是按照他们在初始化列表出现的顺序初始化的 Stack( const Stack& ) ;//拷贝构造函数 ~Stack( void ) ;//析构函数 Stack& operator = ( const Stack& ) ;//重载赋 阅读全文
posted @ 2013-08-12 20:25 de0319gh 阅读(298) 评论(0) 推荐(0) 编辑