Zum Inhalt springen

Frage zum thema Templates in c++


Empfohlene Beiträge

Geschrieben

Moin moin liebe Community.

Hab hier ne Aufgabe die ich bis Montag erledigt haben soll. Find aber nicht überall die Antworten. Hier mal die Aufgabe:

Gegeben sei folgende Template-Klasse

template <class T=int>

class pointer

{

T* ptr; //Zeigervariable

public:

pointer(){};

~pointer() {};

};

Geben Sie in den folgenden Kommentarzeilen an, ob die dazugehörigen Programmzeilen syntaktisch korrekt sind oder nicht. Falls nicht begründen Sie dies.

pointer<float> p1; //ich nehm mal an das ist richtig!

pointer<> p2; //

pointer<char, int> p3; // falsch, da zu viele argumente

pointer<Artikel> p4; //

pointer<*Artikel> p5; //

pointer<Artikel*> p6; //

Wäre cool wenn ihr mir das erklären könntet

Schönen Samstag noch!

Geschrieben

p1 geht.

p2 geht auch, da im Template ein Default-Typ (int) hinterlegt ist.

p3 geht definitiv nicht, wie du sagst.

p4 geht, wenn ein Typ Artikel definiert ist.

p5 geht nicht, da das hier eine Dereferenzierung auf eine Variable wäre, aber ein Typ benötigt wird

p6 geht auch, im Template wäre es halt dann ein Pointer auf einen Pointer.

Sollte ich irgendwo falsch liegen, lasse ich mich gern korrigieren.

BTW: man könnte es ja einfach mal ausprobieren :cool:

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...