#cpp #классы
В классе A есть конструктор по умолчанию и конструктор с 1 параметром. При таком A x(); и таком A x; объявлениях объекта класса A выполняются разные действия. Почему?
Ответы
Ответ 1
A x(); - это объявление функции x которая возвращает результат с типом A. В Си и С++ функции можно объявлять в т.ч. и внутри функций, например int main() { int f(); // объявили функцию, которая будет определена ниже. return f(); } int f() { return 0; } Чтобы объявить переменную, используйте фигурные скобки: A x{}; Или просто используйте A x;.Ответ 2
Данная конструкция A x(); является объявлением функции с именем x, которая возвращает объект класса A и не имеет параметров. Данная конструкция A x; действительно является объявлением объекта класса A с именем x , для создания которого вызывается конструктор по умолчанию.
Комментариев нет:
Отправить комментарий