dziedziczenie z wirtualną klasą

0

Witam! Po kolei - chciałam prosić o pomoc przy zadaniu, które rozwiązuję:

  1. Treść zadania: Stwórz klasę Kot mającą wirtualną funkcję Miaucz i wypisującą na konsolę napis "Miau". Klasa Tygrys dziedziczy po klasie Kot. Ma publiczne pole cierpliowości typu int oraz publiczne pole licznik typu int.
    Konstruktor ustawia cierpliwość na 0, licznik na 0.
    Ma własną implementację funkcji Miaucz.
    Funkcja Miaucz działa następująco:
    każde wywołanie zwiększa licznik o 01, jeśli jest równy lub mniejszy od 0,75 wartości pola cierpliwość wyprowadza napis "Muoooa!", a jeśli jest większy od 0,75 wyprowadza napis "Haps!"

  2. Co do tej pory zrobiłam:

 #include <cstdlib>
#include <iostream>

using namespace std;



class Kot
{
      public:
             std::string miau;
             
             virtual void Miaucz()
             {
              std::cout<<"Miau!"<<std::endl;
              }
 };
 
 
 
 class Tygrys : public Kot
 {
      public:
             int cierpliwocs;
             int licznik;
             //void Miaucz()
             //{
              
              //}  
  
  }

Tygrys::Tygrys(int cierpliwosc, int licznik)
{
 cierpliwość = 0;
 licznik = 0;
 }

  void Miaucz()
             {
              double wartoscPolaCierpliwosc = (cierpliwosc * 0.75);
              licznik = licznik + 0.1;
              if( licznik <= wartośćPolaCierpliwość)
                   {
                       std::cout << "Miau" << std:endl;
                   }
              else
                   {
                       std::cout << "Haps" << std:endl;
                   }
              
              }  
              
              
int main(int argc, char *argv[])
{

    system("PAUSE");
    return EXIT_SUCCESS;
}

Nie bardzo rozumiem co robię źle, programowanie nie idzie mi dobrze, pisałam to wspomagając się wiki i symfonią c++, ale jak widać coś źle robię... Bardzo proszę o pomoc i wskazówki.

0
  1. klasa kot nie potrzebuje std::string miau;
  2. konstruktor klasy Tygrys nie potrzebuje żadnych parametrów
  3. konstruktor klasy Tygrys musi być zadeklarowany wewnątrz klasy Tygrys();
  4. metoda na zewnątrz klasy ma być definiowana jako void Tygrys::Miaucz() { ...
0

Dziękuję za pomoc! Wszystko poprawione i jeszcze znalazłam jakieś małe błędy. Mam nadzieję, że za jakiś czas się ogarnę z programowaniem.

0

Niestety w zadaniu (nie w kodzie) jest błąd.
Nie możesz zwiększać licznika o 0.1 jeśli jest on typu int.
Przynajmniej pole licznik musi być typu float lub double.

0

a to był mój błąd w odczytywaniu swojego charakteru pisma, który znalazłam już po opublikowaniu posta, powinno być o 1, a nie 01 - przepraszam za pomyłkę. W każdym razie program poprawiłam wg wskazówek i zadziałał - dzięki!

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