header файле, а потом его имплементацию в cpp файле. Или лучше не заморачиваться и имплементировать класс в header файле, а его функции в cpp?
Да, имеет
Спасибо! Я думал, что делаю лишние заморочки.
Стой не уходи
Ты понимаешь, в каком контексте нужно определение типа, а в каком достаточно объявления?
Я как раз пишу сейчас об этом
А это вот КАК ? Потому что ты написал как делать ТАК или ТАК ЖЕ ?
Имплементация класса — это в основном имплементация МЕТОДОВ класса , и переменных класса (статических) и всё. Классы, в отличие от других элементов языка, нельзя объявить и определить. Можно только определить и сделать forward declaration. Последнее не является объявлением полноценным, поскольку не даёт делать с обявляемым типом любые действия.
Вы хотите сказать, чтобы я определил класс в хедере, а те поля, которые имеют тип из другого хедера (например, ifstream) я сделал бы не делал #include <iostream>, а просто сделал бы class ifstream
Нет, я такого не говорил, и не хотел сказать.
А вы имели ввиду такую возможность?
Forward declaration и есть объявление
У тебя есть две опции: — Определить класс и методы в заголовочном файле — Определить класс и объявить методы в заголовочном файле, а определить методы в .cpp
/* Code */ Вот, code. Типа так?
Потому что ты не можешь делать с этим типом всё, что ты можешь делать с типом при его объявлении. использование forward declared класса ограничено.
Объявление типа это class-key name-id ;
Верно, определение и объявление разные вещи
Telegram удаляет ` и сам форматирует
Этт так работает
Обсуждают сегодня