Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

operator kropki, a metoda i obiekt

Ostatnio zmodyfikowano 2016-02-09 15:05
Autor Wiadomość
zolty13
Temat założony przez niniejszego użytkownika
operator kropki, a metoda i obiekt
» 2016-02-09 14:47:09
http://4programmers.net/Pastebin/4970
mam taki prosty programik, ucze się obiektowo programować i mam pytanie czemu nie mogę strumieniem cout wypisac np modelu auta z operatorem kropki, albo wywolac metody również w ten sam sposób tylko za pomocą ->
(to co nie działa w komentarzach) dzięki wielkie za pomoc :)
P-144637
notabigthreat
» 2016-02-09 14:58:31
Najpierw wkleję kod, żeby było wiadomo, o co chodzi:
C/C++
#include <iostream>
#include <cstdlib>

using namespace std;

class Silnik {
public:
    int moc;
    int max_moment_obr;
   
    Silnik( int moc, int moment ) {
        this->moc = moc;
        this->max_moment_obr = moment;
    }
};

class Samochod {
public:
    Silnik silnik;
    string model;
   
    Samochod( string MODEL, int MOC, int MOMENT )
        : silnik( MOC, MOMENT )
         , model( MODEL )
    {
        // puste cialo konstruktora
    }
   
    void informacje() {
        cout << "model: " << model
        << "\nmoc: " << silnik.moc
        << "\nmax moment obrotowy: " << silnik.max_moment_obr << "\n\n";
    }
};

int main()
{
    Samochod * fiat = new Samochod( "Fiat 126p", 23, 3200 );
    // cout << fiat.model;
    // cout<<fiat.silnik.moc;
    // fiat.informacje();
    fiat->informacje();
   
    system( "pause" );
    return 0;
}
fiat jest wskaźnikiem, więc trzeba po pierwsze uzyskać wskazywany obiekt, po drugie uzyskać z niego składową. Obie te rzeczy robi strzałka (->).
C/C++
Samochod * fiat = new Samochod( "Fiat 126p", 23, 3200 );
cout << fiat->model;
cout << "\n";
cout << fiat->silnik.moc;
cout << "\n";
fiat->informacje();
delete fiat; //jeśli już chcesz używać wskaźników (w tym przypadku nie ma po co) to proszę UTWORZONE PRZEZ NEW OBIEKTY NISZCZ (delete)[/cpp]
P-144638
zolty13
Temat założony przez niniejszego użytkownika
» 2016-02-09 15:05:41
dzięki wielkie faktycznie zapomniałem spojrzeć ze to dynamiczna alokacja, kod skopiowany :) dopiero się ucze obiektowki
P-144640
« 1 »
  Strona 1 z 1