Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » was ist das ?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
31.10.2005, 16:35 Uhr
BT



In diesem code (listing 10.5) ist der funktiondefinition des konstruktors ist etwas anderes geschrieben als gewöhnlich, die zeile habe ich mit ????????? markiert, normaleweise sollte so aussiehen:

C++:

Rectangle::Rectangle()
{
  funktionsinhalt
}



der funktionsdefinition des konstruktors in listing 10.5 ist trotzdem richtig, meine frage ist
bedeuted das anderes ?,warum ist so geschrieben?


C++:
// Listing 10.5
// Zeiger bei konstanten Methoden
#include <iostream>

class Rectangle
{
public:
     Rectangle();
     ~Rectangle();
     void SetLength(int length) { itsLength = length; }
     int GetLength() const { return itsLength; }

     void SetWidth(int width) { itsWidth = width; }
     int GetWidth() const { return itsWidth; }

private:
     int itsLength;
     int itsWidth;
};

Rectangle::Rectangle(): //????????????????????????
itsWidth(5),
itsLength(10)
{}

Rectangle::~Rectangle()
{}

int main()
{
     Rectangle* pRect =  new Rectangle;
     const Rectangle * pConstRect = new Rectangle;
     Rectangle * const pConstPtr = new Rectangle;

     std::cout << "pRect Breite: "
               << pRect->GetWidth() << " Meter" << std::endl;
     std::cout << "pConstRect Breite: "
               << pConstRect->GetWidth() << " Meter" << std::endl;
     std::cout << "pConstPtr Breite: "
               << pConstPtr->GetWidth() << " Meter" << std::endl;

     pRect->SetWidth(10);
     // pConstRect->SetWidth(10);
     pConstPtr->SetWidth(10);

     std::cout << "pRect Breite: "
               << pRect->GetWidth() << " Meter" << std::endl;
     std::cout << "pConstRect Breite: "
               << pConstRect->GetWidth() << " Meter" << std::endl;
     std::cout << "pConstPtr Breite: "
               << pConstPtr->GetWidth() << " Meter" << std::endl;
     return 0;
}



Bearbeitung von 0xdeadbeef:

cpp-tags eingefügt. Nächstes mal selbst machen.


Dieser Post wurde am 31.10.2005 um 16:40 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.10.2005, 16:40 Uhr
Pler
Einer von Vielen
(Operator)


Wo soll noch mal der Unterschied sein?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
31.10.2005, 16:42 Uhr
0xdeadbeef
Gott
(Operator)


Es handelt sich dabei um eine Initialisierungsliste. Das funktioniert nur bei Konstruktoren und initialisiert die Membervariablen des neu erstellten Objekts, in diesem Fall wird itsWidth auf 5 und itsLength auf 10 gesetzt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
31.10.2005, 16:48 Uhr
BT



die zwei punkte : das ist der unterschied
Rectangle::Rectangle(): /// hier
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.10.2005, 16:53 Uhr
Pler
Einer von Vielen
(Operator)


Ach jetzt hab ichs bemerkt.
Hab ich auch noch nie gesehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: