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

[C++]Dziedziczenie ,klasy

Ostatnio zmodyfikowano 2016-05-23 21:42
Autor Wiadomość
ninja1234
Temat założony przez niniejszego użytkownika
[C++]Dziedziczenie ,klasy
» 2016-05-23 20:32:01
Witam,

mam problem z przesłaniem składowych klasy punkt do klasy wektor,prosze o pomoc.

C/C++
#include <iostream>

using namespace std;

class Punkt { //klasa bazowa
   
protected:
    float x, y;
   
public:
   
    Punkt( float _x = 0, float _y = 0 ) { //konstruktor
       
        x = _x;
        y = _y;
       
    }
    void ustaw() {
        cout << "podaj wart wspolrzednej x:" << endl;
        cin >> x;
        cout << "podaj wart wspolrzednej y:" << endl;
        cin >> y;
    }
    void wypisz() { //wypisywanie
       
        cout << "Punkt: (" << x << "," << y << ") ";
       
    }
};
class Wektor
    : public Punkt
{
   
public:
    float wx, wy;
    Wektor()
        : Punkt( wx, wy )
    { }
   
    void wypisz() {
       
        cout << "Punkt: (" << wx << "," << wy << ") ";
       
    }
};
int main()
{
    Punkt mojPunkt;
    Wektor mojWektor;
   
    mojPunkt.ustaw();
    mojWektor.wypisz();
   
    return 0;
}
P-148525
Gibas11
» 2016-05-23 20:40:16
Po co tworzysz nowe składowe wx i wy skoro dostajesz x i y z klasy bazowej? A tutaj:
C/C++
Wektor()
    : Punkt( wx, wy )
{ }
Jako parametry konstruktora bazowego podajesz niezainicjalizowane zmienne.
P-148526
ninja1234
Temat założony przez niniejszego użytkownika
» 2016-05-23 21:21:31
Po usunięciu zbędnych zmiennych, dziedziczone nie są poprawne
C/C++
class Wektor
    : public Punkt
{
   
public:
   
    Wektor()
        : Punkt()
    { }
   
    void wypisz() {
       
        cout << x << " " << y;
       
    }
};
kompilator podaje zawsze wartości 0 0 po wpisaniu dowolnych liczb.
P-148528
Gibas11
» 2016-05-23 21:32:33
Wszystko z klasami ok, tylko tutaj:
C/C++
mojPunkt.ustaw();
mojWektor.wypisz();
Operujesz na dwóch różnych obiektach i każdy ma swoje kopie x i y, więc wczytanie do jednego nie da efektów w drugim.
P-148530
ninja1234
Temat założony przez niniejszego użytkownika
» 2016-05-23 21:42:50
Ok, to chyba juz wiem, powinno byc:
C/C++
mojWektor.ustaw();
mojWektor.wypisz();

return 0;
}
Dzieki za podpowiedź
P-148531
« 1 »
  Strona 1 z 1