STL中的string构造函数

本文探讨了STL中的string类,通过代码测试揭示了无参数构造函数会创建一个空字符串。此外,文章还介绍了string类的实现,包括无参构造函数、析构函数、其他构造函数、字符串初始化、字符截取等操作。
摘要由CSDN通过智能技术生成

 

二、string是STL中的顺序容器之一,string也是一个类

  1、那我们在用string类创建一个对象的时候,没有传参,那么它肯定会调用无参的构造,既然我们没有传参那string类里面会做什么呢,它指向空还是会被new一个‘\0’呢?下面我们来用代码测试一下

#include<iostream>
#include<string>

using namespace std;

int main()
{
	string str;
	const char* str1 = str.c_str(); //该函数的作用是得到字符串里面指针(字符串的首地址)
	return 0;
}

结果表明,这个str中是一个空的字符串,则说明无参数的构造函数是这样做的,即new car('\0')

2、string类的实现

  (1)无参构造函数

class Mstring
{
private:
	char *m_str;
public:
	Mstring()
	{
		m_str = new char('\0');
	}
	
	const char* c_str() const  //为什么加后面的const是因为不对它里面的数据进行操作,使它成为常函数
	{
		return m_str;  //返回字符串的首地址
	}
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值