Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Klassen Konstruktor Pointer

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.03.2012, 18:07 Uhr
~TJimmy
Gast


angenommen das ist meine class

Code:
class Punkt {
private:
    int x,y;
    int *ptr_x;
    int *ptr_y;
public:
     Punkt (int x, int y);
     void move(int dx, int dy);
};




Code:
Punkt::Punkt(int x, int y)
{
    x = x;
    y = y;
    ptr_x = &x;
    ptr_y = &y;
       cout << "Start ptr_x: " << *ptr_x << endl;

void  Punkt::move(int dx, int dy)
{
  cout << "Anzeige: " << *ptr_x << endl;
}





Warum zeigt der Pointer in der Funktion einen komplett anderen Wert an?
Wie lässt sich das lösen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
31.03.2012, 19:44 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


das sollte dir um die ohren fliegen sobald du versucht *ptr_x einen neuen wert zu geben.

so wie dein code dasteht zeigt ptr_x auf das "x" des Konstruktors (also auf den parameter, nicht die membervariable!)


C++:
Punkt::Punkt(int x, int y)
{
    this->x = x;
    this->y = y;
    ptr_x = &this->x;
    ptr_y = &this->y;
       cout << "Start ptr_x: " << *ptr_x << endl;



oder die parameter anders nennen:


C++:
Punkt::Punkt(int x_, int y_)
{
    x = x_;
    y = y_;
    ptr_x = &x;
    ptr_y = &y;
       cout << "Start ptr_x: " << *ptr_x << endl;


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.04.2012, 01:54 Uhr
~TJimmy
Gast


Cool Danke

Auf die Idee mit demParamterumbennen bin ich selbst gekommen,
auf den this zeiger nicht
 
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: