Пусть существует класс с именем A. В чем разница между передачей следующих двух объектов: (a) A obj1 и (b) A obj1()?

Мой вопрос о конструкторах по умолчанию в C++. Пройдя два вышеупомянутых объекта по отдельности, я обнаружил, что (a) объект obj1 был обнаружен как конструктор по умолчанию, и определяющий его конструктор был выполнен. (b) obj1(), не был обнаружен как конструктор по умолчанию. Это не соответствует ни одному из конструкторов.

В обоих случаях аргумент не передается. Тогда почему только конструктор по умолчанию установлен только (а), а не второй, т. Е. (Б).

1 ответ

Решение

Давайте создадим класс с именем A. В чем разница между передачей следующих двух объектов: (a) A obj1 и (b) A obj1()?

Разница в том, что A obj1; объявляет объект obj1 типа A, В то время как A obj1(); объявляет функцию obj1 который не принимает аргументов и возвращает A - это не создает объект.

Другие вопросы по тегам