c++ でのメモリの割り当てと初期化がどのように機能するか説明してもらえますか?
File Test.h
-----------
class Test
{
public:
Test();
void clearSet();
private:
std::set<std::string> m_SetStringMember;
int m_initMe;
}
File Test.cpp
-------------
Test::Test():m_initMe(0)
{}
Test::clearSet()
{
m_SetStringMember.clear();
}
私が理解していることは次
のとおりです。int
メンバーm_initMe
はコンストラクターで正しく初期化されているため、メモリ内に有効なアドレスと有効な値があります。
しかし、どうなりm_SetStringMember
ますか?
メモリ内に有効なアドレスが必要ですか?
有効なデフォルト値が必要ですか? ?
のデフォルト コンストラクターによって設定されます。または、コンストラクターで
明示的に設定する必要がありますか?std::set<std::string>()
m_SetStringMember = std::set<std::string>()