Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef CD_H
- #define CD_H
- #include <cstring>
- #include <iostream>
- using namespace std;
- class CD
- {
- private:
- char * performers;
- char * label;
- int selections;
- double playtime;
- public:
- CD(const char * s1,const char * s2, int n, double x);
- CD(const CD & d);
- CD();
- ~CD();
- virtual void Report() const;
- virtual CD & operator=(const CD & d);
- };
- #endif // CD_H
- #include "Classic.h"
- Classic::Classic(const CD& cd_base, char* s):CD(cd_base)
- {
- main_track = new char [strlen(s)+1];
- strcpy(main_track, s);
- }
- Classic::Classic(const char* s, const char* perf, const char * sel, int m, double f):CD(perf, sel, m, f)
- {
- main_track = new char [strlen(s)+1];
- strcpy(main_track, s);
- }
- Classic::Classic(const Classic & class_cd):CD(class_cd)
- {
- main_track = new char [strlen(class_cd.main_track)+1];
- strcpy(main_track, class_cd.main_track);
- }
- Classic::Classic():CD()
- {
- main_track = new char[strlen("Domyslny track")+1];
- strcpy(main_track,"Domyslny track");
- }
- void Classic::Report() const
- {
- CD::Report();
- cout <<"Track glowny: " << main_track << endl;
- }
- Classic::~Classic()
- {
- delete [] main_track;
- }
- Classic & Classic::operator=(const Classic& class_cd)
- {
- if(this == &class_cd)
- return *this;
- CD::operator=(class_cd);
- delete [] main_track;
- main_track = new char [strlen(class_cd.main_track)+1];
- strcpy(main_track, class_cd.main_track);
- return *this;
- }
- #ifndef CLASSIC_H
- #define CLASSIC_H
- #include <CD.h>
- class Classic : public CD
- {
- private:
- char * main_track;
- public:
- Classic(const CD & cd_base, char * s);
- Classic(const char* s, const char* perf, const char * sel, int m, double f);
- Classic(const Classic & class_cd);
- Classic();
- virtual void Report() const;
- ~Classic();
- Classic & operator=(const Classic & class_cd);
- };
- #endif // CLASSIC_H
- #include "CD.h"
- CD::CD(const char* s1,const char* s2, int n, double x)
- {
- performers = new char[strlen(s1)+1];
- strcpy(performers, s1);
- label = new char[strlen(s2)+1];
- strcpy(label, s2);
- selections = n;
- playtime = x;
- }
- CD::CD(const CD& d)
- {
- performers = new char [strlen(d.performers)+1];
- strcpy(performers, d.performers);
- label = new char [strlen(d.label)+1];
- strcpy(label, d.label);
- selections = d.selections;
- label = d.label;
- }
- CD::CD()
- {
- performers = new char[strlen("Domyslny konstruktor")+1];
- strcpy(performers, "Domyslny konstruktor");
- label = new char[strlen("Domyslny label")+1];
- strcpy(label, "Domyslny label");
- selections = 0;
- playtime = 0;
- }
- CD::~CD()
- {
- delete [] performers;
- delete [] label;
- }
- void CD::Report() const
- {
- cout << "Performers: " << performers << endl;
- cout << "Label: " << label << endl;
- cout << "Selections: " << selections <<" Playtime: " << playtime << endl;
- }
- CD & CD::operator=(const CD& d)
- {
- if(this == &d)
- return *this;
- delete [] performers;
- delete [] label;
- performers = new char [strlen(d.performers)+1];
- strcpy(performers, d.performers);
- label = new char [strlen(d.label)+1];
- strcpy(label, d.label);
- selections = d.selections;
- playtime = d.playtime;
- return *this;
- }
- #include "Classic.h"
- using namespace std;
- int main()
- {
- CD *kopia = new Classic("Sonata fortepianowa B-dur, Fantazja C-moll",
- "Alfred Brendel", "Philips", 2, 57.17);
- kopia->Report();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement