Zadanie z programowania obiektowego

0

Witam mam pewien problem przygotowuje się do kolosa z obiektówki i rozwiązuje zadania a raczej próbuje. Nie mogę zrozumieć jednego z nich więc proszę o pomoc oto jego Treść:
Zad. 2. Proszę zdefiniować klasę bazową oraz dwie klasy pochodne (dziedziczenie liniowe, atrybuty chronione, dziedziczone). Atrybuty klasy bazowej: łańcuch 15-elementowy, liczba całkowita – rzeczywista długość łańcucha. Metody: konstruktor (domyślne wartości – „tekst”, 5), destruktor. I klasa pochodna – metody : zapis nowej wartości, odczyt, II klasa pochodna – dodatkowo odczyt łańcucha w odwrotnej kolejności. W programie – 1 obiekt klasy I , 1 obiekt klasy II - proszę zademonstrować działanie ich metod.

Głównie nie mogę zrozumieć o co chodzi w tym miejscu prosił bym o przykład
//
Metody: konstruktor (domyślne wartości – „tekst”, 5)//

Jak mam nadać te domyślne wartości
z góry dzięki

0
class samochod
{
     void samochod(); //konstruktor
     int predkosc;
     string marka;
}

void samochod::samochod
{
    int predkosc = 5;
    string marka = "Volvo";
}
0

@this - zjeb...

class samochod
{
     samochod(); //konstruktor
     int m_v;
     string m_brand;
}

void samochod::samochod() :
     m_v(5), m_brand("Volvo")
{}
0

Nie doczytałem :/

0

ok dzięki za pomoc no oczywiście tu nie skończę na pytaniach stworzyłem teraz coś takiego

 


class bazowa
{
     int a;
     char lancuch[15]
      
      bazowa();
      ~bazowa();
      
            
      };
      
class pochodna1 : public bazowa
      {
            
            
          
            };
            
            

 class pochodna2 : public bazowa
      {
            
                  
            };
            
      
      
      void bazowa::bazowa():
           
      
      {
           a(5);
           lancuch("tekst");
           
           }
      
      
     
main()
{
      
      
system ("pause");
}


a jak mam zawrzeć teraz w pierwszej klasie pochodnej

zapis nowej wartości, odczyt,

0

Co to za main()? Jaki jest typ zwracany przez main()? Nie używaj system("pause");. Zjadło Ci include'y oraz metody. Poza tym formatowanie Ci się rozjechało. A ten konstruktor to co to w ogóle ma być? O kiedy konstruktor zwraca cokolwiek oraz co robi tam ten dwukropek? Co to za funkcja a() bo takiej nie widzę, tak samo funkcji tekst(). Naucz się kopiować cstringi.

0

No widzisz próbowałem coś sklecić z tego co mi pokazałeś w swoim przykładzie widocznie nie tak miało być, to ja już w ogóle nie rozumiem treści tego zadania czy może mnie ktoś poprawić i nakierować?

0

winerfresh: zgodnie ze standardem w C++ funkcja main() zawsze zwraca wartość typu int (nawet jeśli nie jest to jawnie podane w deklaracji / definicji). Oczywiście w dobrym stylu jest to napisać jawnie ale zapis:

main() {}

jest dla kompilatora poprawny.

0

Nie prawda - standard nie dopuszcza domyślnie zwracanej wartości jako int. Np. kompilator VC się potrafi o to pluć errorem:
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Standard jedynie definiuje, że jeżeli nie zostanie to podane jawnie, main zwróci 0 (jeżeli dobrze pamiętam)

1

Jest poprawny dla kompilatora ze względu na zgodność ze starymi wersjami C, ale nie jest on zgodny ze standardem, ze standardem są zgodne tylko 3 wersje main():
1.

int main()
int main(int argc, char* argv[])
int main(int argc, char* argv[], char* env[])

Nie ma innych zgodnych ze standardami. Oprócz tego trzeba jawnie określić wartość zwracaną przez program.

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