Para essas classes simples abaixo. Para MyClass
, o construtor inicializa str
com s
durante a construção usando a lista de inicializadores.
Isso significa que ele str
não será construído até que mc
aconteça?
E no caso de MyClass2
e mc2
?
#include <string>
class MyClass
{
public:
MyClass(std::string s): str(s){}
private:
std::string str;
};
class MyClass2
{
public:
MyClass2(std::string s){str = s;}
private:
std::string str;
};
int main()
{
std::string s = "Hello";
MyClass mc(s);
MyClass2 mc2(s);
}