字符数组仍在那里,它只有一个包裹着它的类.想象一下这样的事情:
class String
{
private:
char* stringData;
public:
String(const char* str)
{
stringData = new char[strlen(str)+1];
strcpy(stringData, str);
}
~String() { delete[] stringData; }
String& operator += (const String& rhs)
{
char* newStringData = new char[strlen(rhs) + strlen(stringData) + 1];
strcpy(newStringData, stringData);
strcpy(newStringData + strlen(stringData), rhs);
delete[] stringData;
stringData = newStringData;
return *this;
}
};
Run Code Online (Sandbox Code Playgroud)
这显然是一个非常不完整的例子,但是你明白了,对吧?
std :: string的实际实现非常全面,但是你自己做不了什么.以下是我发布的官方std :: string类的一些不同之处:
一旦你对C++比较熟悉,你应该尝试编写自己的字符串类.这不是你在实践中会使用的东西,但对于图书馆写作来说这是一个非常好的练习.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |