有人可以解释一下 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>()
在构造函数中显式设置?