Как создать объект в такой форме: ifstream in();

Я новичок в С++. Я видел несколько раз, когда объект создавался как:

class_name object_name();

и после этого вы можете обращаться к object_name как к объекту класса. Как я могу сделать это в своем классе? Должен ли я переопределить конструктор? И как это сделать?

Это создает функцию, а не объект.

HolyBlackCat 09.04.2022 10:00

Я думаю, вам нужно показать нам немного больше того, что вы имеете в виду, чтобы мы предложили ответ или даже много полезного комментария.

user4581301 09.04.2022 10:04

Где вы видели определение переменной в виде ifstream in();?

πάντα ῥεῖ 09.04.2022 10:04

Вы никогда не видели объект, созданный таким образом. Я бы порекомендовал вам начать здесь.

molbdnilo 09.04.2022 10:15

Вполне может быть, что ваш учебник слишком древний.

πάντα ῥεῖ 09.04.2022 10:15
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
1
5
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта строка кода, вероятно, может вызвать неприятное (но не "самый неприятный") поведение синтаксического анализа: вместо того, чтобы интерпретироваться как объявление переменной, она будет интерпретироваться как объявление функции с именем object_name, не принимающей параметров и возвращающей значение типа class_name.

Посмотрите, как это происходит на Богболт: компилятор говорит вам:

<source>: In function 'void foo()':
<source>:4:27: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
    4 |     class_name object_name();
      |               

@PeteBecker: Ты прав. Это просто досадный разбор.

einpoklum 09.04.2022 16:36

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