C&C++
发布时间:2022-04-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C++ string构造函数和析构函数详解,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
构造
函数有四个参数,其中三个具有
默认值。要初始化
一个 String 类,可以使用 C 风格字符串或
String 类型对象,也可以使用 C 风格字符串的部分或
String 类型对象的部分或序列。
@H_
675_1@
注意,不能使用字符或者整数去初始化字符串。
常见的
String 类构造
函数有以下几种形式:
@H_
675_1@
String strs //
生成空字符串
String s(str) //
生成字符串str的复制品
String s(str,
Strid
X) //
将字符串str中始于
Stridx的部分作为构造
函数的初值
String s(str,strbegin,strlen) //
将字符串str中始于strbegin、长度为strlen的部分作为字符串初值
String s(cstr) //以C_
String类型cstr作为字符串s的初值
String s(cstr,char_len) //以C_
String类型cstr的前char_len个字符串作为字符串s的初值
Strings(num,
C) //
生成一个字符串,包含num个c字符
Strings(strs,beg,end) //以区间[beg,end]内的字符作为字符串s的初值
析构
函数的形式如下:
@H_
675_1@
~
String() //销毁所有内存,释放内存
如果字符串只包含
一个字符,使用构造
函数对其初始化时,使用以下两种形式比较合理:
@H_
675_1@
std:
:string s('x'
); //
错误
std:
:string s(1,'x'
); //正确
或
@H_
675_1@
std:
:string s("x"
); //正确
C_
String 一般被认为是常规的
C++ 字符串。目前,在 C++ 中确实存在
一个从 @R_
262_3377@ * 到
String 的隐式型别转换,却不存在从
String 对象到 C_
String 的
自动型别转换。对于
String 类型的字符串,可以通过 c_
str() 函数返回该
String 类对象对应的 C_
String。
通常,程序员在整个程序中应坚持使用
String 类对象,直到必须将
内容转化为 char* 时才将其转换为 C_
String。
【例 1】
#include <iostream>
#include <String>
using namespace std;
int main ()
{
String str ("12345678");
char ch[ ] = "abcdefgh";
String a; //定义一个空字符串
String str_1 (str); //构造函数,全部复制
String str_2 (str,2,5); //构造函数,从字符串str的第2个元素开始,复制5个元素,赋值给str_2
String str_3 (ch,5); //将字符串ch的前5个元素赋值给str_3
String str_4 (5,'X'); //将 5 个 'X' 组成的字符串 "XXXXX" 赋值给 str_4
String str_5 (str.begin(),str.end()); //复制字符串 str 的所有元素,并赋值给 str_5
cout << str << endl;
cout << a << endl ;
cout << str_1 << endl;
cout << str_2 << endl;
cout << str_3 << endl;
cout << str_4 << endl;
cout << str_5 << endl;
return 0;
}
程序运行结果为:
@H_
675_1@
12345678
12345678
34567
abcde
XXXXX
12345678
使用 cout
输出 String 类型对象 a 时,
输出为空。这
是因为没有给
String 类型对象 a 赋值。
通过上述
内容的学习,读者应对
String 类的构造
函数和析构
函数有了初步了解,并能够使用构造
函数创建
String 类型对象。
大佬总结
以上是大佬教程为你收集整理的C++ string构造函数和析构函数详解全部内容,希望文章能够帮你解决C++ string构造函数和析构函数详解所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。