如何解决如何使用 new 在堆上保存类的字符串变量
我有个问题, 我要写一篇关于C++动态内存管理的论文,但我没学过C++。
对于我想展示的示例代码,如果您在类中使用 new 分配内存,为什么需要使用解构器。但我无法让我的代码工作。 如何编写我的构造函数,以便使用 new 运算符分配字符串名称?
我已有的代码:
class Studi
{
private:
unsigned int matNr;
char* name;
public:
Studi(const string& k_name,unsigned int k_matNr)
{
name = new char[k_name.length()];
strcpy(name,k_name);
matNr = k_matNr;
}
};
感谢您的帮助:)
解决方法
- 您必须为终止空字符再分配一个字节。
- 您可以使用
c_str()
从In(this)
获取 C 风格的字符串。
std::string
另外别忘了跟在The Rule of Three后面,避免复制对象时的内存管理麻烦。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。