MyClass spam(); // Construct object
Это не создает объект, который объявляет функцию с именем spam
, которая не принимает аргументов и возвращает MyClass
.Это значение по умолчанию создает объект:
MyClass spam; // Construct object
Для получения дополнительной информации Google самый неприятный анализ .
Обновление: Как указал @Mark Ransomесть еще одна проблема с вашим кодом.В вашем конструкторе вы создаете массив, а затем устанавливаете x
, чтобы указать на такой массив.Однако время жизни массива заканчивается, как только конструктор заканчивает выполнение, поэтому дальнейший доступ к x
может привести к сбою (если вам повезет).