码迷,mamicode.com
首页 > 编程语言 > 详细

c++ primer (5)2

时间:2014-05-15 07:48:07      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

第三章

1.头文件不应包含using声明,因为头文件的内容会拷贝到所有引用它的文件中去。

2.初始化string对象的方式:

bubuko.com,布布扣
string s1;    //默认初始化,s1是一个空串
string s2(s1);    //s2是s1的一个副本
string s2=s1;    //等价于s2(s1)
string s3("value");    //s3是字面值"value"的副本,除了字面值最后那个空字符外
string s3="value";    //等价于s3("value")
string s4(n,c);    //把s4初始化为由连续n个字符c组成的串
bubuko.com,布布扣

用等号初始化一个变量,执行的是拷贝初始化,不使用等号,是直接初始化。

对于多个初始值一般用直接初始化,如s4,如要用拷贝初始化,需要显示创建一个临时对象用于拷贝:

bubuko.com,布布扣
string s8=string(10,c);
bubuko.com,布布扣

这条语句等价于:

bubuko.com,布布扣
string temp(10,c);
string s8=temp;
bubuko.com,布布扣

3.读取一行使用getline(),getline()参数是一个输入流和一个string对象,会读入换行符,把所读内容存入string对象时不存换行符。getline()也会返回它的流参数,因此可以作为判断条件。

4.string类及其他大多数标准库类型都定义了几种配套的类型,这些配套类型体现了标准库与机器无关的特性。string::size_type就是其中一种,是size函数返回值的类型。string::size_type是无符号类型的值并且能足够放下任何string对象的大小。

5.如果一条表达式中已经有了size()函数就不要再使用int了,这样可以避免int和unsigned可能带来的问题。

bubuko.com,布布扣
auto len=line.size();    //len的类型是string::size_type
if(line.size()<n)    //如果n为负值,结果几乎为真,n会转化为一个比较大的无符号值
bubuko.com,布布扣

6.字面值和string对象相加:

bubuko.com,布布扣
string s1="hello",s2="world";
string s3=s1+","+"world";     //正确,右边的值可以转换成string       
string s4="hello"+","+s2;    //错误,试图把两个字符串字面值加在一起
bubuko.com,布布扣

7.建议使用c++版本的c标准库头文件,即将name.h改为cname,标准库中的名字总能在std中找到,使用.h,就必须记住哪些是c语言继承,哪些是c++独有的。

c++ primer (5)2,布布扣,bubuko.com

c++ primer (5)2

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/xiaowujiayou/p/3729012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!