Ich habe eine Klasse A
, die eine initializer_list
nimmt und speichert es als Member-Variable.mit std :: initializer_list als Member-Variable
class A
{
public:
A(std::initializer_list<std::string> il) :
m_il(il)
{}
std::initializer_list<std::string> m_il;
};
Eine andere Klasse B
hat A
als Mitglied Variable, die standardmäßig die initializer_list
class B
{
public:
B()
{
std::cout << *m_a.m_il.begin() << std::endl;
}
A m_a { "hello", "bye" };
};
Jetzt mit initialisiert ist, wenn ich diesen Code in Haupt laufen, ist es nichts druckt.
int main()
{
B b;
}
Warum hat der obige Code hello
nicht gedruckt? Ist meine Verwendung von std::initializer_list
falsch?
nicht 'initializer_list' als Daten Mitglied anwenden. – 0x499602D2
Das Initialisieren eines nicht statischen Klassenmembers wird sogar [hier] (http://en.cppreference.com/w/cpp/utility/initializer_list) als etwas erwähnt, das speziell die Lebensdauer des zugrunde liegenden Temporären nicht verlängert – Useless