随笔分类 -  C++

初始化函数列表和构造函数内赋值之区别
摘要:既然构造函数初始化列表和构造函数体内赋值都可以对成员变量赋值,那么二者有何区别,是不是二者等效呢?一、若类的数据成员是静态的(const)和引用类型,必需用初始化列表静态(const)的数据成员只能初始化而不能赋值,同样引用类型也是只可以被初始化,那么只有用初始化列表。如:C++代码 1 #include 2 #include 3 using namespace std; 4 5 template 6 class namedptr { 7 public: 8 namedptr(const string& initname, t *init... 阅读全文

posted @ 2013-08-05 16:29 烟雨飘零 阅读(966) 评论(0) 推荐(1)

关于string::size_type
摘要:size_type其实是string模板类定义的一种类型之一,它与size_of的用法相似,只是它根据存储的类型返回字符串的长度.对于 string具体化,将根据char返回字符串的长度,在这种情况下,size_type与size_of等效.size_of是一种无符号类型. 你说的 size_type 其实就是 unsigned int 类型 其实并不正确,它要看其存储的类型.size_type实际上是做为解决string类设计上的严重失误而引入的。 size_type是在string类内定义的一个无符号整形类型,由于string类里很多方法的返回值都是size_type... 阅读全文

posted @ 2012-07-27 16:45 烟雨飘零 阅读(13212) 评论(0) 推荐(4)

【转】C++ Vector用法深入剖析
摘要:标准库Vector类型使用需要的头文件:#include <vector>Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。一、 定义和初始化Vector<T> v1; //默认构造函数v1为空Vector<T> v2(v1);//v2是v1的一个副本Vector<T> v3(n,i);//v3包含n个值为i的元素Vector<T> v4(n); //v4含有n个值为0的元素二、 值初始化1> 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。2> 阅读全文

posted @ 2012-07-27 16:41 烟雨飘零 阅读(354) 评论(0) 推荐(0)

【转】VS2008 WIN32使用UNICODE字符问题
摘要:错误:1> main.cpp(16) : error C2440: “初始化”: 无法从“const char [9]”转换为“LPCWSTR”1> 与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换1>\main.cpp(18) : error C2664: “CreateWindowExW”: 不能将参数2 从“const char [9]”转换为“LPCWSTR”1> 与指向的类型无关;转换要求reinterpret_cast、C 样式转换或函数样式转换1> main.cpp(33) : error C2664: “Unr 阅读全文

posted @ 2012-04-07 21:07 烟雨飘零 阅读(495) 评论(0) 推荐(0)

【转】在vs2008 C++下调试控制台程序的心得及技巧
摘要:以下的内容转载自:http://blog.sina.com.cn/s/blog_62466e480100f8cw.htmlVisual Studio 2008环境与VC6.0的环境存在着比较大的区别,下面就一些小小的区别在这里做一些探讨,欢迎指教!1、如果是调试控制台程序,很多时候点击“启动调试”后是一闪而过,此时可有两种方法让cmd下dos调试屏幕暂停:A:不要直接点击vs2008的“启动调试”按钮,而是按Control+F5组合键。B:在主函数main()里“return 0;”前加上两句:cin.get();样式如下eg: int main() { cout<<"这 阅读全文

posted @ 2012-04-07 21:01 烟雨飘零 阅读(1866) 评论(0) 推荐(0)

C++ 之编译过程
摘要:1)用户点击编译程序时,编译程序将C++源代码转换成目标代码,目标代码通常由 机器指令和记录如何将程序加载到内存的信息组成。其后缀通常为.obj或.o;2)目标文件中存储的只是用户所编写的代码的转换结果,并不包括底层的操作指令,不能直接运行。例如程序包 iostream 实现了所有有关输入和输出的操作,并且其所有实现操作的机器代码都放在一个库中,库是对已实现的程序经编译后所产生的代码集合,用户可以在程序中直接使用库。3)一个被称为链接程序的特殊程序将用户程序的目标文件和iostream库中必要代码链接起来生成一个可执行文件,其后缀通常为.exe 。这个可执行文件中包含了执行该用户程序所需要的所 阅读全文

posted @ 2011-10-16 16:47 烟雨飘零 阅读(2481) 评论(2) 推荐(0)

c++ 编译程序的差异
摘要:由于不是所有的编译程序都遵循标准的C++程序,所以在使用不同编译程序时要注意一些常见的不兼容问题:例如: 1)标准C++中,使用#include<string> 包含字符串处理功能 而#include<string.h> 并没有包含C++字符串的操作,只是包含了风格的字符串操作,而C字符串和C++字符串是完全不同的,而且用法也不同。 2)标准C++钟,使用#include<cmath>包含数学函数,而旧的编译程序则使用 #include<math.h>来包含数学函数此外旧的编译程序还不支持命名空间,此时需要省略 using namespace s 阅读全文

posted @ 2011-10-16 16:22 烟雨飘零 阅读(1015) 评论(0) 推荐(0)

C++ 之 转义字符
摘要:反斜杠“\”称为转义字符,该字符并不表示本身,用于在程序中表示那些很难或不能显示的字符,例如如果想要表示字符“\”本身,则应该连续用两个反斜杠。 又例如你想打印输出:hello,"world!" 就不能用cout<<"hello,"world"!\n";可以这样表示:cout<<"hello,\"world\"!\n"; 阅读全文

posted @ 2011-10-13 23:47 烟雨飘零 阅读(468) 评论(0) 推荐(0)

导航