标准库 string类型和字符串字面值

时间:2022-01-03 13:13:08

1.标准库 string类型

string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。标准string类型的目的就是满足对字符串的一般应用。

与其他的标准库类型一样,用户程序要是string类型对象,必须包含相关头文件。如果提供了合适的using声明,那么编写出来的程序将会变得简短些;

#include <string>
using std::string

2.string 对象的定义和初始化
构造函数是一个特殊成员函数,定义如何初始化该类型的对象。下表中列出几个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)就是在没有显示提供初始化式调用的构造函数。它由不带参数的构造函数,或者为所有形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化,就会使用默认构造函数。

如果用户定义类中没有显式定义任何构造函数,编译器就会自动为该类生成默认构造函数,称为合成的默认构造函数。