1

宿題のタスクの一部は、2 つのテキスト ファイルをロードし、動的に割り当てられた文字配列を使用してクラスにコンテンツを保存することです。これは私のクラスです。それについて何を改善できますか?

コンテンツ.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 に答える