Инициализация структуры в стиле C из списка инициализации в C ++ - PullRequest
3 голосов
/ 26 января 2011

Существует ли синтаксис, позволяющий использовать синтаксис инициализации структуры:

struct A { int a; int b; }

int main()
{
    A a = { 1, 2 }; //syntax
    return 0;
}

в списке инициализации?Например,

class B
{   
  public: 
    B(int a_, int b_) : obj { a_, b_ } { }

  private:
    A obj;
};

1 Ответ

4 голосов
/ 26 января 2011

Если у вас есть класс с открытыми переменными-членами, вы можете автоматически использовать его так же, как и со структурами.Но в C ++ нет способа определить произвольное поведение списка инициализаторов.Но в C ++ 0x есть, как указано здесь .Если вы используете GCC, эта функция поддерживается в GCC 4.4 и выше (если вы компилируете с параметром -std = c ++ 0x)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...