Немного простой вопрос, но мне трудно отыскать окончательный ответ.
Есть ли в инициализаторе список только способа инициализации полей класса в C ++, кроме присвоения в методах?
В случае, если я использую неправильную терминологию, вот что я имею в виду:
class Test
{
public:
Test(): MyField(47) { } // acceptable
int MyField;
};
class Test
{
public:
int MyField = 47; // invalid: only static const integral data members allowed
};
EDIT : в частности, есть ли хороший способ инициализировать поле структуры с помощью инициализатора структуры? Например:
struct MyStruct { int Number, const char* Text };
MyStruct struct1 = {}; // acceptable: zeroed
MyStruct struct2 = { 47, "Blah" } // acceptable
class MyClass
{
MyStruct struct3 = ??? // not acceptable
};