Klasa, przeładowania operatorów, dziedziczenie – jak dobrze zabrać się za to zadanie?

0

Jestem początkującym w C++. Od miesiąca uczę się obiektowości i poznałem klasy, przeładowania operatorów i dziedziczenie. Wymyśliłem sobie, że chcę poćwiczyć dzisiaj przeładowania operatorów korzystając przy tym z klas i dziedziczenia. Przeładowania operatorów chcę ćwiczyć na figurach takich jak: kwadrat, trójkąt i koło. Postanowiłem, że tak się za to zabiorę:

  1. Stworzę klasę figura, która będzie zawierała informacje takie jak: długość boku, wysokość, średnica, promień, pole, obwód i porównanie figury jednej do drugiej względem procentowym.
  2. Stworzę klasę kwadrat, która będzie dziedziczyć po klasie figura: długość boku, pole, obwód i porównanie.
  3. Stworzę klasę trójkąt, która będzie dziedziczyć po klasie figura: długość boku, wysokość, pole, obwód i porównanie.
  4. Stworzę klasę koło, która będzie dziedziczyć po klasie figura: pole, średnicę i porównanie.
  5. W main.cpp zajmę się wywoływaniem tych klas i stworzę metody przeładowania operatorów.

Jakieś porady, uwagi? Dzięki.

0

Klasę figura zrób abstrakcyjną, a tak to więcej mi nic do głowy nie przychodzi.

0

Co masz na myśli pisząc klasa abstrakcyjna? Bo nie rozumiem. Możliwe, że nie wiem o co z tym może chodzić.

1

Przeładowanie operatorów to takie "złoto głupców".
Naprawdę nie warto się tego uczyć. Jak się troszkę więcej popisze bez tego feature-a języka, to potem się okazuje, że nie ma się czego uczyć (w sensie po pewnym czasie okaże się, że to jest proste jak konstrukcja cepa).
Ergo to jest marnowanie czasu.

0

Jest to taki rodzaj klasy po którym można tylko dziedziczyć, nie można utworzyć obiektu klasy figura. Pojęcie figura jest abstrakcyjne, gdy mówisz figura możesz myśleć o kwadracie a ja o prostokącie. Ale wszystkie figury mają jakieś wspólne cechy własnie w niej umieszczasz te pola, metody (bez implementacji) i później dziedziczysz w klasach pochodnych i piszesz implementację metod w klasach pochodnych.

0

I jakie operatory chciałbyś przeładować? << jeszcze ma jakiś sens, ale inne?

Porównanie? Kiedy koło jest mniejsze od kwadratu? A jeśli figura jest klasą abstrakcyjną, to co jeśli kiedyś będziesz miał np. figurę krzyż (jak na fladze Szwajcarii) albo półksiężyc?

Arytmetyczne/logiczne/binarne? Tutaj nie mam nawet pomysłów, wtf.

Zdecydowanie podpisuję się pod tym co pisze @MarekR22

Jeśli potrzebujesz na zadania to tutaj opisałem podstawowe zasady przeładowywania.

0

Pisząc porównanie miałem na myśli, żeby zrobić kwadraty o różnych polach i je względem siebie porównać, to samo z innymi figurami.
Chcę nauczyć się wszystkiego, więc takie operatory również mam zamiar solidnie przestudiować, a to czy się mi to kiedyś przyda czy nie to inna sprawa.
Jak piszę, wciąż się uczę dlatego mam różne pomysły, które nie zawsze dobrze wyjdą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1