Объявление переменных-членов в заголовочном файле интерфейса классаC++

Программы на C++. Форум разработчиков
Anonymous
Объявление переменных-членов в заголовочном файле интерфейса класса

Сообщение Anonymous »

Имея опыт работы с Java и C, в настоящее время я изучаю C++ по старой, но хорошей книге, в которой объясняется, что все члены класса, включая переменные, должны быть объявлены, но не инициализированы в заголовочном файле интерфейса.
Здесь есть много вопросов и ответов по этой теме, например этот, объясняющий это, но не могли бы вы подтвердить, верны ли следующие утверждения?
В первой программе у меня есть такой интерфейс класса:

Код: Выделить всё

class OCR {

private:

httplib::Response &res;

tesseract::TessBaseAPI *api;

struct Pixa *pixa;

// some private functions

public:

OCR(httplib::Response &res);

~OCR();

// some public functions

};
  • — это объявление ссылки на объект. Без & это была бы инициализация, что совершенно неправильно.
  • — это объявление указателя на (большой) объект, размещенный в куче с помощью new.
  • также является допустимым объявлением указателя на структуру C, выделенную в куче с помощью malloc..
Я думаю, все это довольно очевидно, и программа работает нормально, но подтверждение на этом конкретном примере было бы неплохо.
Обновление:

Конечно, с вами все было в порядке: глупо было использовать такую ​​старую книгу. Я отложил это в сторону и начал с «Начала C++23», в котором уже на первых страницах говорится о «Современном C++» и «старомодных заголовочных файлах», и мне нужно обновиться до GCC 15, поддерживающего импорт std;...

Подробнее здесь: https://stackoverflow.com/questions/798 ... eader-file

Вернуться в «C++»