18.2 声明一个字符串

    string是字符串类,首先了解如何通过构造函数来声明一个字符串,string类的构造函数如表18.1所示。

    如示例代码18.1所示。

    18.2 声明一个字符串 - 图1

    18.2 声明一个字符串 - 图2

    输出结果如下所示。


    Hello,C++ China Beijing China B C+

    【代码解析】代码第6行的str1是由字符串来初始化的,而代码第9行的str2是由字符数组(C风格字符串)初始化的,str1和str2的初始化方式是等价的,代码第10行的str3采用的是C风格字符串sz的前7个字符初始化,所以输出为“China B”(注意:空格也占1个字符),而代码第13行的str4是在str1的基础上初始化的,采用的是从第6个字符('C')开始,向字符串尾部取不超过两个字符的串为其初始化,所以,输出结果为“C+”。

    string类的析构函数只有一种形式,如下所示。


    string:~string()

    析构函数可以由string对象显式调用,以销毁所有字符并释放内存。

    注意

    从代码18.1中不难看出,string类对<<进行了重载,不仅如此,操作符+=被重载用于将1个字符串附加到另1个字符串后面(string类对象自动调整所占内存大小),重载的=用于将1个字符串赋给另1个字符串(深度复制),重载的>>可用于输入字符串,重载的[]用于访问字符串中的某个字符。