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

C++ - klasy abstrakcyjne

Ostatnio zmodyfikowano 2021-02-10 17:30
Autor Wiadomość
Temat założony przez niniejszego użytkownika
C++ - klasy abstrakcyjne
» 2021-02-09 23:16:57
Witam.

C/C++
#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?
P-178080
» 2021-02-10 16:20:03
w klasie Ksztalt zamiast private użyj protected
P-178081
» 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.
P-178082
« 1 »
  Strona 1 z 1