Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- #include <stdlib.h>
- using namespace std;
- class Ajandek{
- char* nev;
- char* felirat;
- public:
- char* getNev();
- char* getFelirat();
- Ajandek(char* nev, char* felirat);
- void operator+=(char*);
- };
- char* Ajandek::getNev(){
- return nev;
- }
- char* Ajandek::getFelirat(){
- return felirat;
- }
- Ajandek::Ajandek(char* nev, char* felirat){
- this->nev = nev;
- this->felirat = felirat;
- }
- void Ajandek::operator+=(char* x){
- char a[strlen(felirat)+strlen(x)];
- strcpy(a,felirat);
- strcat(a," ");
- strcat(a,x);
- felirat = (char*)malloc((strlen(felirat)+strlen(x))*sizeof(char));
- strcpy(felirat,a);
- }
- class Karacsonyfa{
- int magas;
- int n;
- int cnt;
- Ajandek **m;
- public:
- Karacsonyfa(int magas, int n);
- Karacsonyfa(Karacsonyfa*);
- ~Karacsonyfa();
- void operator+=(Ajandek& a);
- friend ostream& operator<<(ostream& o,Karacsonyfa& k);
- void operator--(int);
- void operator++();
- };
- ostream& operator<<(ostream& o, Karacsonyfa& k){
- o << "A fa " << k.magas << "cm magas." << endl;
- for(int i = 0; i<k.cnt; i++){
- o << k.m[i]->getFelirat() << endl;
- }
- return o;
- }
- void Karacsonyfa::operator--(int){
- if(cnt-1 >= 0){
- cout << m[cnt-1]->getNev() << endl;
- delete m[cnt-1];
- m[cnt-1] = NULL;
- cnt--;
- }else cout << "Nincs több ajándék a fa alatt! :(" << endl;
- }
- void Karacsonyfa::operator++(){
- magas+=10;
- }
- void Karacsonyfa::operator+=(Ajandek& a){
- if(cnt<n){
- m[cnt] = new Ajandek(a);
- cnt++;
- }else{
- cerr << "HIBA: Nem fér több ajándék a karácsonyfa alá!" << endl;
- }
- }
- Karacsonyfa::Karacsonyfa(int magas, int n){
- this->magas = magas;
- this->n = n;
- m = new Ajandek*[n];
- this->cnt = 0;
- for(int i = 0; i<n; i++){
- m[i] = NULL;
- }
- }
- Karacsonyfa::Karacsonyfa(Karacsonyfa* k){
- this->magas = k->magas;
- this->n = k->n;
- this->cnt = k->cnt;
- for(int i = 0; i<n; i++){
- this->m[i] = k->m[i];
- }
- }
- Karacsonyfa::~Karacsonyfa(){
- for(int i = 0; i<n; i++){
- delete m[i];
- }
- delete []m;
- }
- int main()
- {
- setlocale(LC_ALL,"HUN");
- Ajandek a1("X-Act","Boldog Karit Ádám!");
- Ajandek a2("Kangertech Subox Mini-C ","Boldog Karit Csernok!");
- Ajandek a3("Jegyzokonyv","Boldog Karit Bandi!");
- Ajandek a4("Herbál","Boldog Karit Kóbi!");
- Ajandek a5("Ducati","Boldog Karit SS!");
- Ajandek a6("Jelek ZH 5-ös","Boldog Karit Kiri!");
- Ajandek a7("Éles látás","Boldog Karit Matacz!");
- Ajandek a8("Switch","Boldog Karit Sziszkó!");
- Ajandek a9("Summa Cum Lauda","Boldog Karit Ságodi!");
- Ajandek a10("Éles látás","Boldog Karit Matacz!");
- Ajandek a11("Állampolgárság","Boldog Karit Miro!");
- Ajandek a12("Unicorn Milk","Boldog Karit Flash!");
- Ajandek a13("Minecraft","Boldog Karit Zsóti!");
- Ajandek a14("Fésű","Boldog Karit Szabi!");
- Ajandek a15("iPhone XxX","Boldog Karit Matyi!");
- Karacsonyfa k(100,15);
- char* plusz = "SzirSzar! <3";
- a2+=plusz;
- k+=a1;
- k+=a2;
- k+=a3;
- k+=a4;
- k+=a5;
- k+=a6;
- k+=a7;
- k+=a8;
- k+=a9;
- k+=a10;
- k+=a11;
- k+=a12;
- k+=a13;
- k+=a14;
- k+=a15;
- cout << k;
- cout << endl;
- ++k;
- cout << k;
- cout << endl;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- k--;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement