будет ли этот синтаксис инициализации действительным в будущем стандарте c ++ 0x? - PullRequest
2 голосов
/ 16 июля 2010

Предположим, у нас есть два следующих класса:

class Temp{
 public:
  char a;
  char b;
};
class Final{
 private:
  int a;
  char b;
  char c;
 public:
  Final(Temp in):b(in.a),c(in.b){}
  //rest of implementation
};

можем ли мы инициализировать объект класса Final со следующим синтаксисом в следующем стандарте c ++ 0x:

Final obj(Temp{'a','b'});

1 Ответ

2 голосов
/ 16 июля 2010

C ++ 0x добавляет унифицированную инициализацию, как для POD-структур и массивов, используя фигурные скобки ({}) для всех типов, а также специальные списки инициализаторов для поддержки переменного количества элементов / аргументов в них, как в массиве. Таким образом, ваш пример может быть записан как:

Final obj = { { 'a', 'b' } };

или

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