[C++]Dziedziczenie ,klasy
Ostatnio zmodyfikowano 2016-05-23 21:42
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. #include <iostream>
using namespace std;
class Punkt { protected: float x, y; public: Punkt( float _x = 0, float _y = 0 ) { x = _x; y = _y; } void ustaw() { cout << "podaj wart wspolrzednej x:" << endl; cin >> x; cout << "podaj wart wspolrzednej y:" << endl; cin >> y; } void wypisz() { 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; }
|
|
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: Wektor() : Punkt( wx, wy ) { }
Jako parametry konstruktora bazowego podajesz niezainicjalizowane zmienne. |
|
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 class Wektor : public Punkt { public: Wektor() : Punkt() { } void wypisz() { cout << x << " " << y; } }; kompilator podaje zawsze wartości 0 0 po wpisaniu dowolnych liczb. |
|
Gibas11 |
» 2016-05-23 21:32:33 Wszystko z klasami ok, tylko tutaj: 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. |
|
ninja1234 Temat założony przez niniejszego użytkownika |
» 2016-05-23 21:42:50 Ok, to chyba juz wiem, powinno byc: mojWektor.ustaw(); mojWektor.wypisz();
return 0; }
Dzieki za podpowiedź |
|
« 1 » |