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
};
- ist eine Deklaration einer Objektreferenz. Ohne das & wäre es eine Initialisierung, was schlicht falsch ist.
Code: Select all
&res - ist eine Deklaration eines Zeigers auf ein (großes) Objekt, das mit new auf dem Heap zugewiesen wird.
Code: Select all
*api - ist auch eine gültige Deklaration eines Zeigers auf eine C-Struktur, die mit malloc auf dem Heap zugewiesen wurde.
Code: Select all
*pixa
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;...
Mobile version