Пусть существует класс с именем 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
- это не создает объект.