随笔分类 -  C++ 基础

对于常用的比较容易混淆的C++基础知识的总结
/MD, /MDD, /ML, /MT,/MTD(使用运行时库) .
摘要:1.VC编译选项 多线程(/MT)多线程调试(/MTd)多线程 DLL (/MD)多线程调试 DLL (/MDd)2. C 运行时库 库文件Single thread(static link) MLlibc.libDebug single thread(static link) MLd libcd.libMultiThread(static link) MT libcmt.libDebug multiThread(static link) MTd libcmtd.libMultiThread(dynamic link) MD msvert.libDebug multiThread(dynami 阅读全文
posted @ 2014-04-11 22:53 de0319gh 阅读(237) 评论(0) 推荐(0)
C++赋值运算符、函数调用运算符、下标运算符(“=”、“()”、“[]”)重载
摘要:#include #include #include using namespace std;class cstring{public: cstring(char *str=""); cstring(const cstring &str); cstring operator+(const cstring &str); //赋值运算符只能用成员函数重载,不能被继承,用户自己不重载系统会默认冲在一个(但不一定能满足要求) cstring &operator=(const cstring &str); //重载函数调用运算符,只能用成员函数 int 阅读全文
posted @ 2014-03-13 00:10 de0319gh 阅读(517) 评论(0) 推荐(0)
String类的实现,内部采用字符数组实现
摘要:#include using namespace std;class String{public: String(const char *str = NULL);//默认构造函数 String(const String &str);//复制构造函数 ~String();//析构函数 String operator+(const String & str);//字符串连接 String & operator=(const String &str);//字符串赋值 bool operator==(const String &str);//判断是否字符串相等 阅读全文
posted @ 2014-03-13 00:06 de0319gh 阅读(588) 评论(0) 推荐(0)
dllimport与dllexport作用与区别
摘要:我相信写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 阅读(4389) 评论(0) 推荐(1)
c++ 关于类构造函数的初始化列表
摘要:除了性能问题之外,有些时场合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化成员变量的初始化顺序成员是按照他们在类中出现的顺序进行初始化的,而不是按照他们在初始化列表出现的顺序初始化的初始化顺序构造函数初始化列表的变量优先于构造函数(至少明显的写在前面)(若都在初始化列表中初始化,则按声明顺序初始化,与初始化列表中的顺序无关)静态成员变 阅读全文
posted @ 2013-08-12 20:43 de0319gh 阅读(188) 评论(0) 推荐(0)