二、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; //返回字符串的首地址
}
};