В современном C++ переменные-члены могут быть явно инициализированы. Однако, хотя мы можем опустить емкость массива при определении локального массива в функции со списком инициализаторов, мы не можем опустить емкость члена массива, даже если у него есть список инициализаторов.
Например, в следующем коде:
class A{ int a[]{1,2,3,4}; // error int b[4]{}; int c[4]{1,2,3,4}; };
Это дает ошибку в переменной-члене a
:
привязка массива не может быть выведена из инициализатора в классе
Мне любопытно, почему такое определение не допускается?