Если у класса есть константные переменные-члены, то для любого конструктора, определенного для этого класса, эти переменные должны быть инициализированы в списке инициализатора конструктора. Если какой-либо определенный конструктор не инициализирует переменную-член с квалификацией const, программа некорректна.
В вашем примере кода someClass
не имеет объявленных пользователем конструкторов, поэтому существует неявно объявленный конструктор по умолчанию. Однако, если этот конструктор не используется, он не определяется. Поскольку вы не создаете экземпляр объекта someClass
, конструктор не используется. Следовательно, ваш пример кода не содержит ошибок.
Если вы должны определить конструктор для класса и не инициализировать член const,
class someClass
{
someClass() { } // error, does not initialize const-qualified x
int const x;
};
или если вы создадите экземпляр экземпляра someClass
(что приведет к определению неявно объявленного конструктора по умолчанию), то программа будет некорректно сформирована.