Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Arrays

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
06.02.2006, 10:50 Uhr
ref



manchmal funktionieren dinge bei irgend ein c++ code bei andere nicht , bei diesem einfache code es ist möglich std::cout<<somearay[2]; zu schreiben

C++:
#include<iostream>
int main()
{
    int somearray[5]={ 4,5,2,7,4};
    std::cout<<somearray[2];
    return 0;
}



aber im folgende code (in der zweite for schleife) es ist nicht möglich std::cout<< Family[i]
allein OHNE .GetAge() zu schreiben , warum?



C++:
// Listing 15.5 - Ein Array auf dem Heap

#include <iostream>



class CAT

{

public:

     CAT() { itsAge = 1; itsWeight=5; }      // Standardkonstruktor

     ~CAT();                                 // Destruktor

     int GetAge() const { return itsAge; }

     int GetWeight() const { return itsWeight; }

     void SetAge(int age) { itsAge = age; }



private:

     int itsAge;

     int itsWeight;

};



CAT :: ~CAT()

{

//  std::cout << "Destruktor aufgerufen!\n";

}



int main()

{

     CAT * Family = new CAT[500];

     int i;

     CAT * pCat;

     for (i = 0; i < 500; i++)

     {

         pCat = new CAT;

         pCat->SetAge(2*i +1);

         Family[i] = *pCat;

         delete pCat;

     }
    
    
     for (i = 0; i < 500; i++)
        
         std::cout << "Katze #" << i+1 << ": "

             << Family[i].GetAge() << std::endl; // Family[i] ohne .GetAge veursacht error



     delete [] Family;



     return 0;

}




--
Man kann ein Problem nicht mit der gleichen Denkweise lösen, mit der es erschaffen wurde. (Albert Einstein)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.02.2006, 10:59 Uhr
hsp



Du greifst auf die geschützte Klassenkomponente itsAge zu, auf die du nur über die Zugriffsdeklaration GetAge() zugreifen kannst. Kann sein das ich es zu schnell überflogen habe oder mich täusche aber ich würde sagen "working as intended"
--
Actiones nostras, quaesumus, Domine, aspirando praeveni et adiuvando prosequere, ut cuncta nostra operatio a te semper incipiat, et per te coepta finiatur.
 
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: