たとえば、次のようなコンストラクタがあります
myClass(const char* name);
それは好きですか?
myClass(const char* name);
{
someInnerField = name;
}
または、入力文字列を内部フィールドに値でコピーする必要がありますか?
たとえば、次のようなコンストラクタがあります
myClass(const char* name);
それは好きですか?
myClass(const char* name);
{
someInnerField = name;
}
または、入力文字列を内部フィールドに値でコピーする必要がありますか?
安全なのは次のとおりです。
std::string someInnerField;
myClass(const std::string& name) : someInnerField(name)
{
}
クラスがそのメンバーが指すメモリを破棄した場合 (そしてクラスのスコープ外でメモリを使用した場合)、またはメモリがクラスの外部で破棄された場合 (内部で使用し続けた場合) は、バージョンが失敗する可能性があります。
それは動作しません。std::string を使用してください。または、「char*」の場合は「strcpy」または「memcpy」の関数を使用できます。</p>