为字符串类创建复制构造函数
Creating a copy constructor for a string class
我正在创建自己的字符串类(作为练习),我知道我需要一个复制构造函数和一个重载=赋值操作符,但不确定从哪里开始。
类很简单,只存储字符串,例如
char* m_string;
我目前有一个标准构造函数(MyString(const char* str)
),它接受const char* string
,然后通过m_string = new char[numChars + 1]
分配必要的内存(在计算参数中的字符数之后)
显然,我需要能够使用赋值操作符将一个字符串赋值给另一个字符串,但也希望能够从另一个字符串对象构造一个字符串对象。例如
MyString(const MyString& str)
{
}
关于重载=赋值操作符
然后我是否得到rhs和lhs的长度(字符数),然后根据rhs比lhs长还是短来调整内存的大小?
我不一定要完整的答案,因为我不相信你只知道答案就能学到任何东西,但如果能给我一些正确方向的建议和指导,我将非常感激。
谢谢
复制构造函数必须为str
的有效负载分配内存,然后复制内容。这与您已经拥有的构造函数非常相似,除了char *
没有直接作为参数给出,而是"隐藏"在str
中。
它可以重用现有分配的内存。如果新内容具有相同的长度或更短,则此方法有效。终止的