标准库 string类型和字符串字面值
2012-08-10 15:39 残月星辰 阅读(1231) 评论(0) 编辑 收藏 举报1.标准库 string类型
string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。标准string类型的目的就是满足对字符串的一般应用。
与其他的标准库类型一样,用户程序要是string类型对象,必须包含相关头文件。如果提供了合适的using声明,那么编写出来的程序将会变得简短些;
#include <string> using std::string
2.string 对象的定义和初始化
构造函数是一个特殊成员函数,定义如何初始化该类型的对象。下表中列出几个string类型常用的构造函数。当没有明确指定对象初始化时,系统将使用默认函数。
string s1; | 默认构造函数s1 为空串 |
string s2(s1); | 将s2 初始化s1的一个副本 |
string s3("value"); | 将 s3 初始化为一个字符串字面值副本 |
string s4(n,'c'): | 将 s4 初始化为字符‘c’的 n 个副本 |
警告:因为历史原因以及C语言兼容,字符串面值与标准库 string 类型不是同一种类型。这一点很容易引起混乱,编程时一定要注意区分字符串字面值和string数据类型的使用。
什么是默认构造函数?
答:默认构造函数(default constructor)就是在没有显示提供初始化式调用的构造函数。它由不带参数的构造函数,或者为所有形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化,就会使用默认构造函数。
如果用户定义类中没有显式定义任何构造函数,编译器就会自动为该类生成默认构造函数,称为合成的默认构造函数。