Mam do napisania program, ktory ma przedstawiac gitare za pomoca klasy oraz zawierac 2 obiekty inny klas, jeden dynamiczny, drugi automatyczny, nastepnie mam stworzyc knstruktor kopiujacy, do glownego obiektu, ale tak, zeby te dwa podobiekty tez sie kopiowaly, mam nadzieje, ze wiecie o co mi chodzi :P probowalam to zrobic za pomoca tego co znalazlam na forum, niestety z marnym skutkiem... moglby mi ktos pomoc? :) i mam jeszcze jedno pytanie, dlaczego podczas tworzenia obiektu gitara w mainie, dziala mi tylko konstruktor i destruktor gitary i pudla, a strun juz nie?
GITARA.H
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
class Struny
{
int dlugosc;
int srednica;
public:
Struny(int=120, int=3);
~Struny();
friend class Gitara;
};
class Pudlo
{
string material;
public:
Pudlo(string="drewno");
~Pudlo();
friend class Gitara;
};
class Gitara
{
Pudlo pudlo;
Struny *struny;
string nazwa;
char kolor;
static int licznik;
public:
void zaladuj();
void pokaz();
Gitara(string="brak", char=90); //inicjacja wartossci domyslnych
~Gitara();
//Gitara(int);
};
GITARA.CPP
#include <iostream>
#include <string>
#include <cctype>
#include "gitara.h"
using namespace std;
void Gitara::zaladuj()
{
cout<<endl<<"Podaj nazwe gitary: ";
cin>>nazwa;
cout<<endl<<"Podaj kolor gitary: ";
cin>>kolor;
}
void Gitara::pokaz()
{
cout<<"Gitara "<<nazwa<<" o kolorze "<<kolor<<endl;
}
Gitara::Gitara(string n, char k) //do ktorej klasy:: operator zasiegu
{
nazwa=n;
kolor=k;
cout<<"Dziala konstruktor domyslny."<<endl;
}
Gitara::~Gitara()
{
cout<<"Dziala destruktor domyslny"<<endl<<endl;
}
Struny::Struny(int d, int s)
{
d=dlugosc;
s=srednica;
cout<<"Dziala konstruktor struny"<<endl;
}
Struny::~Struny()
{
cout<<"Dziala destruktor struny"<<endl;
}
Pudlo::Pudlo(string m)
{
m=material;
cout<<"Dziala konstruktor pudlo."<<endl;
}
Pudlo::~Pudlo()
{
cout<<"Dziala destruktor pudlo."<<endl;
}
MAIN.CPP
#include <iostream>
#include <string>
#include <cctype>
#include "gitara.h"
using namespace std;
int main()
{
cout << "Hello world!" << endl;
Gitara g1;
g1.zaladuj();
g1.pokaz();
return 0;
}