1

家庭作业的一部分任务是加载两个文本文件并使用动态分配的字符数组将它们的内容保存在一个类中。这是我的课。我可以改进它什么?

内容.hpp

class Content
{
public:
   Content(char* pContent);
   ~Content();
   char* getContent();
private:
   char* data;
};

内容.cpp

#include <cstring>
#include "Content.h"

using namespace std;

Content::Content(char* pContent){
   data = new char[sizeof pContent];
   strcpy(data, pContent);
}

Content::~Content(){
   delete[] data;
}

char* Content::getContent(){
   return data;
}
4

2 回答 2

2

如果您正在存储字符串(看起来就是这样),您应该替换sizeof pContent为,。strlen(pContent) + 1这是因为字符数组将衰减为C 和 C++ 中的指针,这些指针没有长度。

于 2012-05-09T18:13:32.957 回答
1

考虑声明const char* getContent()而不是char* getContent()因为它返回您可能希望防止被外部修改的私有数据成员。

于 2012-05-09T18:20:23.537 回答