Deklarieren von Mitgliedsvariablen in einer Klassenschnittstellen-HeaderdateiC++

Programme in C++. Entwicklerforum
Anonymous
 Deklarieren von Mitgliedsvariablen in einer Klassenschnittstellen-Headerdatei

Post by Anonymous »

Da ich einen Java- und C-Hintergrund habe, lerne ich derzeit C++ mit einem alten, aber guten Buch, das erklärt, dass alle Mitglieder einer Klasse, einschließlich Variablen, in ihrer Schnittstellen-Header-Datei deklariert, aber nicht initialisiert werden müssen.
Hier zu diesem Thema gibt es viele Fragen und Antworten wie diese, die es auch erklären, aber könnten Sie bitte bestätigen, ob die folgenden Aussagen korrekt sind?
In einem ersten Programm habe ich eine solche Klassenschnittstelle:

Code: Select all

class OCR {

private:

httplib::Response &res;

tesseract::TessBaseAPI *api;

struct Pixa *pixa;

// some private functions

public:

OCR(httplib::Response &res);

~OCR();

// some public functions

};
  • Code: Select all

    &res
    ist eine Deklaration einer Objektreferenz. Ohne das & wäre es eine Initialisierung, was schlicht falsch ist.
  • Code: Select all

    *api
    ist eine Deklaration eines Zeigers auf ein (großes) Objekt, das mit new auf dem Heap zugewiesen wird.
  • Code: Select all

    *pixa
    ist auch eine gültige Deklaration eines Zeigers auf eine C-Struktur, die mit malloc auf dem Heap zugewiesen wurde.
Ich denke, das ist alles ziemlich offensichtlich und das Programm läuft gut, aber eine Bestätigung anhand dieses konkreten Beispiels wäre schön.
Update:

Natürlich hatten Sie recht: Es war albern, ein so altes Buch zu verwenden. Ich habe es beiseite gelegt und mit „Beginning C++23“ begonnen, in dem bereits auf den ersten Seiten von „Modern C++“ und „altmodischen Header-Dateien“ die Rede ist, und ich muss auf GCC 15 aktualisieren, das Import std;...

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post