C++ - klasy abstrakcyjne
Ostatnio zmodyfikowano 2021-02-10 17:30
Tołdi2426 Temat założony przez niniejszego użytkownika |
C++ - klasy abstrakcyjne » 2021-02-09 23:16:57 Witam. #include <iostream> using namespace std;
class Ksztalt { private: int a; int b; public: virtual int getter(); Ksztalt(); }; Ksztalt::Ksztalt() { this->a = 33; this->b = 44; } int Ksztalt::getter() { return this->a; }
class Kwadrat : public Ksztalt { public: int getter(); }; int Kwadrat::getter() { cout << "Nadpisany getter z kwadratu"; return this->a; }
int main() { Kwadrat kw; return 0; }
Mam rozwiązać zadanie w którym jest podane żeby gettera i settera z klasy bazowej używać w klasie potomnej do zmiany wartości prywatnych z klasy bazowej, próbuje tak jak w przykładzie ale nic z tego, jest w jakiś sposób możliwe aby mieć dostęp do private jeśli kasa bazowa jest abstrakcyjna? |
|
nanoant20 |
» 2021-02-10 16:20:03 w klasie Ksztalt zamiast private użyj protected |
|
pekfos |
» 2021-02-10 17:30:45 jest podane żeby gettera i settera z klasy bazowej używać w klasie potomnej do zmiany wartości prywatnych z klasy bazowej Getter i setter powinien być zdefiniowany w klasie bazowej, bo tylko ona ma dostęp do swoich składowych prywatnych. W klasie potomnej masz raczej utworzyć jakąś dodatkową metodę ( zamien()?), która tylko używa tych getterów i setterów by wykonać zamianę wartości. W kodzie nie masz żadnej klasy abstrakcyjnej. |
|
« 1 » |