Jak zrobić to zadanie, atrybuty i klasy

0

Witam wszystkich
Jestem nowa na tym forum i nie wiem czy w dobrym miejscu piszę, ostatnio dostałam na zajęciach zadanie do zrobienia i nie wiem jak się za nie zabrać. Mam spore zaległości w nauce z powodu opuszczenia sporej ilości zajęć na co nie miałam wpływu (ważne sprawy rodzinne). Czy mógłby ktoś napisać i wytłumaczyć mi to zadanie? Lub chociaż napisać jak to zrobić i wyjaśnić co trzeba tu zastosować?

oto zadanie:
Mamy klasę zawierającą atrybuty: tablicę znakową o długości 12 oraz liczbę całkowitą przechowującą faktyczną długość wpisanego do tablicy łańcucha; oraz metody: konstruktor domyślny nadający atrybutom wartości „Ala”, 3, konstruktor przeciążony przekazujący wartości atrybutów w momencie tworzenia obiektu, destruktor, wpisz i wyświetl. Proszę w klasie zdefiniować operator przeciążony „+”, który będzie oznaczał łączenie łańcuchów z dwóch obiektów tej klasy (parametry – dwa obiekty, wynik – łańcuch). W programie proszę zademonstrować działanie operatora.

0

Idziesz dokładnie wg instrukcji, każde słowo które nie rozumiesz szukasz w google. To są podstawy programowania obiektowego w C++. Albo zacznij od pierwszego lepszego kursu C++ znalezionego w google

0

Zastosowałam się do Waszych rad i zrobiłam coś takiego:

#include <cstdlib>
#include <iostream>
#include <string.h>
#include <conio.h>

using namespace std;

class Klasa
{
private:
char tab[12];
char tab2[12];
int *liczba;

  public:
     Klasa()   //konstruktor
     {
         cout<<"  konstruktor   "<<endl;
         liczba=new int;
         *liczba=3;
         strcpy(tab,"Ala");  
     }
     
     Klasa(char *tt, int aa) //konstruktor przeciążony
     {
         cout<<"  konstruktor   "<<endl;
         liczba=new int;
         *liczba=aa;
         strcpy(tab,tt);
     }
       
     ~Klasa()   //destruktor
     {  
     cout<<"  destruktor "<<endl;
     delete liczba;
     }
     
      void wyswietl()
      {
           cout<<tab<<endl;
           cout<<*liczba;
      }

};

int main()
{

Klasa * cKlasa;
cKlasa = new Klasa;  //wywołanie konstruktora
delete cKlasa;  //wywołanie destruktora

Klasa k2;  //uruchamia się konstruktor
k2.wyswietl();  //void wyswietl pobiera dane z konstruktora
Klasa k1("Alicja",102);
k1.wyswietl();
k1.~Klasa();
getch();
return(0);

}

Tylko nie wiem natomiast jak zrobić tą część: "Proszę w klasie zdefiniować operator przeciążony „+”, który będzie oznaczał łączenie łańcuchów z dwóch obiektów tej klasy (parametry – dwa obiekty, wynik – łańcuch). ". Czy mógłby mi ktoś to zrobić lub chociaż wyjaśnić? I może w międzyczasie sprawdzić mój dotychczasowy kod czy jest w miarę dobrze napisany?

0

Liczbę uczyń normalną zmienna, a nie wskaźnikiem - lepiej to będzie wyglądać.
http://pl.wikibooks.org/wiki/C++/Przeci%C4%85%C5%BCanie_operator%C3%B3w
Tam masz jak przeciążać operatory napisane.
Swoją drogą i tak nie wiem jak to zrobisz, bo jak będziesz miała dwa obiekty z łańcuchami o długościach np. 9 i 8, to po dodaniu chyba ich nie wciśniesz do 12-to elementowej tablicy. :p

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