|
|
@ -15,9 +15,9 @@ String::String(int size) : length(0), allocSize(size) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 不设定初始化大小就默认64个字符来初始化 |
|
|
|
* 不设定初始化大小就默认128个字符来初始化 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
String::String() : String(64) {} |
|
|
|
String::String() : String(128) {} |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 从源中复制字符串来构建新的对象 |
|
|
|
* 从源中复制字符串来构建新的对象 |
|
|
@ -160,18 +160,17 @@ void String::addString(const char *source, int sourceLength) { |
|
|
|
char *old = new char[length + 1](); |
|
|
|
char *old = new char[length + 1](); |
|
|
|
strcpy(old, data); |
|
|
|
strcpy(old, data); |
|
|
|
|
|
|
|
|
|
|
|
// 重新分配内存,防止拼接后溢出,2为两个横杠大小
|
|
|
|
|
|
|
|
length += sourceLength; |
|
|
|
|
|
|
|
allocSize = length + 1; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 重新分配内存,防止拼接后溢出
|
|
|
|
delete[] data; |
|
|
|
delete[] data; |
|
|
|
|
|
|
|
allocSize = length + sourceLength + 1; |
|
|
|
this->data = new char[allocSize](); |
|
|
|
this->data = new char[allocSize](); |
|
|
|
|
|
|
|
|
|
|
|
strcpy(data, old); |
|
|
|
strcpy(data, old); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
strcat(data, source); |
|
|
|
strcat(data, source); |
|
|
|
length += sourceLength; |
|
|
|
length = allocSize - 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|