Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //дефаулт конструктор
- Coffee( const char *i="", float c=0.0, int p=0){
- this->ime = new char[strlen(i)+1];
- strcpy(this->ime, i);
- this->cena=c;
- this->popust = p;
- }
- //copy конструктор
- Coffee &operator = (const Coffee &ob){
- if(this != &ob){
- this->ime = new char[strlen(ob.ime)+1];
- strcpy(this->ime, ob.ime);
- this->cena = ob.cena;
- this->popust = ob.popust;
- return *this;
- } else return *this;
- }
- //output ostream operator
- friend ostream &operator<<(ostream &output, Person p)
- {
- output<<p.name<<endl;
- if(p.age>10) output<< p.age <<endl;
- else output<< p.age <<endl;
- return output;
- }
- //get
- int getCena() { return this->cena; }
- //динамичка алокација
- this->ime = new char[strlen(i)+1];
- strcpy(this->ime, i);
- //postincrement operator
- Coffee &operator --(){
- cena = cena - (cena*0.2);
- return *this;
- }
- //preincrement operator
- Coffee &operator ++(int)
- {
- popust = popust + 5;
- return *this;
- }
- //predecrement operator
- Coffee &operator --(){
- cena = cena - (cena*0.2);
- return *this;
- }
- //postdecrement operator
- Coffee &operator --(int){
- cena = cena - (cena*0.2);
- return *this;
- }
- //собирање оператор помеѓу два објектни(проперти)
- Coffee operator + (const Coffee &ob){
- char *temp = new char[strlen(this->ime)+1+strlen(ob.ime)+1]
- for(int i=0; i<strlen(this->ime); i++){
- temp[i] = this->ime[i];
- }
- temp[strlen(this->ime)] = '-';
- int j=0;
- for(int i=0)
- }
- //dinamicki void setter
- void setName(char *name){
- this->name = char new[strlen(name)+1];
- strcpy(this->name, name);
- }
- //setiranje int
- void setPopust(int popust){
- return this->popust = popust;
- }
- //плагер функ // објект на место во низа
- void setCoffee(int i, Coffee &c) {
- for(int j = 0; j < n; j++) {
- if (j == i) {
- niza[j] = c;
- }
- }
- } /* влезови - индекс елемент и објект ц
- лупа низ низа - ако индексот во низа =
- посакуван елемент -: смени објект во низа
- со објектот во дефиниција на функцијата. */
- //оператор додавање нов објект во низа
- CoffeeShop &operator += (const Coffee &object) {
- Coffee *temp = new Coffee [n+1];
- for(int i = 0; i<n; i++) {
- temp[i] = this->niza[i];
- }
- temp[n++] = object;
- delete [] niza;
- niza = temp;
- return *this;
- }
- //наследување
- class CrnoKafe: public Kafe{}{};
- //наследување конструктор
- CrnoKafe( const char *ime, int popust, int boja):
- Kafe(ime, popust){
- boja = new char[strlen(boja)+1];
- strcpy(this->boja, boja);
- }
- //наследување копи конструктор
- CrnoKafe(const CrnoKafe &k){
- boja = new char[strlen(k.boja)+1];
- strcpy(this->boja, k.boja);
- }
- //низа од објекти во класи
- class CrnoKafe {
- Kafe *kafinja;
- int brKafinja;
- }
- //низа од објекти во default конструктор
- CrnoKafe(){
- this->brKafinja = 0;
- this->kafinja = new Kafe[brKafinja];
- }
- //додавање елемент += оператор во низа
- Kafic &operator+=(Kafe &k) {
- if(k.getRating()>5)
- {
- Kafe *tmp=new Kafe[brKafinja+1];
- for(int i=0;i<this->brKafinja;i++)
- {
- tmp[i]=this->kafinja[i];
- }
- delete [] kafinja;
- kafinja=tmp;
- this->kafinja[brKafinja]=k;
- this->brKafinja++;
- }
- return *this;
- }
- //при оформување на оператор тој може да се користи
- //над секој објект од класата
- //аритметика над приватно проперти од објект хендл
- //со гет метод
- //функција споредба на елементи класи низа
- //функција со амперсанд од апстрактна класа
- Nedviznost &najskap_imot (Nedviznost **ned, int n){
- Nedviznost *max = ned[0]; //постави прв елемент за макс
- //макс зема нед елемент со копи конструктор
- for(int i = 0; i < n; i++){
- if(ned[i] > max){ //изведено од < преоптоварен оператор
- max = ned[i];
- }
- }
- return *max;
- }
- //споредба на апстрактна класа (дали од апстрактната класа е добиена една или друга изведена класа)
- void mostExpensiveBook (Book **books, int n){
- int online=0, pecateni=0;
- int maxcena=0,maxi;
- for(int i=0; i<n; i++){
- if(dynamic_cast <OnlineBook*>(books[i])) // дали книгата е онлајн книга
- ++online; //ако не е тогаш е печатена книга
- else ++pecateni;
- if(books[i]->bookPrice() > maxcena){
- maxi=i;
- maxcena=books[i]->bookPrice();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment