polecenie obiektowy c++ pomoz zrozumiec

0

pomoże mi ktoś zrozumieć to plecenie? od pazdziernika uczylam sie programowania w C, teraz przeskoczylismy na C++/obiektowy C++, dlatego może ktoś powiedziałbymi "po ludzku" co mam zrobić?

Jeżeli jest wybór pomiędzy stosowaniem mechanizmów, funkcji, instrukcji typowych dla
języka C i C++ proszę stosować odpowiednie konstrukcje właściwe dla C++ np. char* - string,
FILE* - iostream, static_cast, tablica w stylu C – std::vector itp.
Klasa , konstruktory i destruktory, przeciążanie funkcji i operatorów

  1. Zaprojektować zestaw trzech klas będących obiektowym odwzorowaniem giraty, z których jedna będzie klasą główną, reprezentującą cały
    obiekt i będzie zawierać dwa obiekty pozostałych klas (podobiekty; w tym jeden automatyczny i
    jeden dynamiczny). Podobiekt dynamiczny oznacza, że polem obiektu głównego jest wskaźnik na
    podobiekt (do celów tego projektu w konstruktorze domyślnym ma być inicjowany na zero).
    Odwzorowanie powinno być możliwie realistyczne - dla skomplikowanych obiektów odpowiednio
    uproszczone. Zaprojektowane klasy będą wykorzystywane w następnym projekcie – ewentualnie
    będą modyfikowane.
  2. We wszystkich konstruktorach i destruktorach wstawić kod drukujący na ekran informację o
    wywołaniu (warunkowo, pod zmienną kompilacji TESTPR). Wydruki te będą pomocne w czasie
    śledzenia sekwencji wywołania konstruktorów i destruktorów.
  3. Klasa główna ma zawierać mechanizm określania liczby stworzonych obiektów tego typu
    (statyczne pole klasy), oraz statyczną metodę zwracającą to statyczne pole klasy (chodzi o
    możliwość uzyskania informacji o braku instancji klasy).
  4. Każda klasa powinna prawidłowo zachowywać się w przypadku kopiowania – rozważyć
    realizację konstruktora kopiującego lub użycie standardowego konstruktora kopiującego lub
    zabronienie kopiowania obiektów klasy. Podobnie rozważyć operator przypisania dla klas.
  5. Zaprojektować i zaimplementować dla klas kilka sensownych, różnorodnych operatorów, w
    tym: jeden jednoargumentowy, jeden dwuargumentowy, jeden konwersji, jeden indeksowy.
    Zastosować wybrane operatory jako metody klas oraz jako funkcje zaprzyjaźnione z klasami.
  6. Napisać program główny testujący klasę główną i jej podklasy (oddzielny moduł/plik). Dla
    testów stworzyć obiekty automatyczne, dynamiczne i statyczne (lokalne, globalne) w funkcji
    main i innej funkcji testowej (w trakcie testu powinno powstać co najmniej kilkanaście obiektów).
    Celem powyższych testów jest między innymi obserwowanie czasu życia obiektów oraz
    zachowanie się funkcji i operatorów przeciążonych. Fragment programu powinien testować
    kopiowanie obiektów. Program testowy powinien być nieinterakcyjny (statyczny) z odpowiednią
    liczbą wydruków objaśniających, co zaszło w czasie działania programu.
 #include <iostream>
#include "gitara.h"

using namespace std;

class Gitara
{
	Pudlo pudlo;
	Struny *struny;

public:
	Gitara()
	{
		#ifdef 	TESTPR
		cout<<"Dziala konstruktor domyslny"<<endl;
	}
	Gitara(const Gitara &g)
	{
		if(g.pudlo != 0)
			this -> pudlo = new Pudlo(g.pudlo);
		else 
			this -> pudlo = 0;		
		cout<<"Dziala konstruktor kopiujacy"<<endl;	
	}
	
	friend class Struny;
	friend class Pudlo;
	
};

class Struny
{
	float dlugosc;
	float grubosc;

public:
	Struny(float d = 1.0, float g = 1.0)
	{
		d = dlugosc;
		g = grubosc;
	}

	void 
};

int main()
{


	return 0;
}
 
2

@domidomka
musisz zrobic to co jest w poleceniu. Czego konkretnie nie rozumiesz?

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