本文共 1151 字,大约阅读时间需要 3 分钟。
//string???????????????????????????//??????String::String(const char *str) { if (str == NULL) { //???????????????'\0'??? m_data = new char[1]; *m_data = '\0'; } else { int length = strlen(str); m_data = new char[length + 1]; //??? NULL ????? if (m_data == nullptr) { cout << "out of space!"; //??????????? } }}//??????String::String(const String &other) { //??????? m_data = new char(other.length() + 1); memcpy(m_data, other.m_data, other.length()); m_data[other.length()] = '\0';}//????String::~String() { //????????? delete[] m_data;}//???????String &String::operator=(const String &other) { //??????????????????? if (this == &other) { return *this; } //????????? delete[] m_data; //????????? m_data = new char(other.length() + 1); memcpy(m_data, other.m_data, other.length()); m_data[other.length()] = '\0'; return *this;} //?????//1. ?????????????????????????????//2. ???????????????//3. ????????????????//4. ???new?delete??????????????//5. ??????memcpy???????????//6. ????????????????unique_ptr???RAII??
转载地址:http://lzz.baihongyu.com/