Przeszukaj forum
Pokazuję wyniki dla tagów 'konstruktor kopiujacy'.
Znaleziono 1 wynik
-
Cześć :) Mam prosbe czy mozecie mi pomoc w napisaniu programu, mam tu zastosowac konstruktor kopiujacy do obiektu dynamicznego, operator przypisania ( wykladowca mowil ze to sie robi w metodzie) oraz przeciazyc operator <<. Pozniej mam to przetestowac czy dobrze dziala prosze o pomoc ponizej wkleilam caly kod. :) #include <iostream> #include <cstring> using namespace std; class Procesor { private: string marka; int czestotliwosc; public: Procesor() : marka("Radeon") , czestotliwosc(1000) { #ifdef TESTPR cout << "Dziala konstruktor domyslny Procesor()" << endl; #endif } ~Procesor() { #ifdef TESTPR cout << "Dziala destruktor ~Procesor()" << endl; #endif } void infoprocesor() { cout << "marka procesora " << marka << endl; cout << " czestotliwosc procesora : " << czestotliwosc << endl; } }; #include <iostream> //#include "Karta.h" using namespace std; class Karta { private: string nazwa; int pamiec; public: Karta() : nazwa("Nvidia") , pamiec(2000) { //cout << "Karta " << endl; #ifdef TESTPR cout << "Dziala konstruktor dynamiczny Karta()" << endl; #endif } ~Karta() { #ifdef TESTPR cout << "Dziala destruktor ~Karta()" << endl; #endif } void wyswietlinfo() { cout << "nazwa karty" << nazwa << endl; cout << " pamiec karty" << pamiec << endl; } }; #include <iostream> #include <cstdio> #include <cstring> #include "procesor.cpp" #include "Karta.cpp" using namespace std; typedef int TypDanychT; class Komputer { private: string wykonawca; string producent; Procesor procesor; static int licznik; int dysk; Karta* karta; int ram; public: friend ostream& operator<<(ostream&, Komputer const&); Komputer(int x, int y) { this->x = x; this->y = y; } static int zwrocLicznik() { return licznik; } int x, y; Komputer() { karta = NULL; //cout << "konstruktor" << endl; x = 3; y = 5; dysk = 500; ram = 2000; ++licznik; #ifdef TESTPR cout << "Dziala konstruktor domyslny Komputer()" << endl; #endif } void dodajkarta() { if (karta == NULL) karta = new Karta(); cout << "dodana karta" << endl; } void usunkarta() { if (karta) delete karta; cout << "usunieto karta" << endl; } void infokomp() { cout << "dysk ma pojemnosc " << dysk << endl; cout << "pamiec ram wynosci " << ram << endl; if (karta) karta->wyswietlinfo(); procesor.infoprocesor(); } Komputer(const Komputer& o) { #ifdef TESTPR cout << "Dziala konstruktor kopiujacy Komputer()" << endl; #endif producent = o.producent; wykonawca = o.wykonawca; procesor = o.procesor; dysk = o.dysk; //if (o.karta != NULL) //karta = new Karta(*o.karta); cout << "konstruktor kopiujacy sie wywolal " << endl; cout << "pojemnosc dysku komputera wynosi " << dysk << endl; } ~Komputer() { --licznik; #ifdef TESTPR cout << "Dziala desturktor ~Komputer()" << endl; #endif } bool operator==(const Komputer& k) { return producent == k.producent; } void setProducent(string producent) { this->producent = producent; } Komputer& operator=(const Komputer& p) { cout << "operator przypisania" << endl; dysk = p.dysk; ram = p.ram; <em>/* if (p.karta != NULL) { if (karta == NULL) karta = new Karta; *karta = *p.karta; }*/</em> return *this; } Komputer operator+(Komputer& m) { cout << "operator + " << endl; Komputer temp; temp.x = x + m.x; temp.y = y + m.y; return temp; } // void przypisania::operator = (przypisania &b) //ostream& operator<< (ostream &wyjscie, Komputer const& ex) // { // wyjscie << "Pierwsza liczba: " << ex.pierwsza << " oraz druga: " << ex.druga << endl; //return wyjscie; // } }; #include "komputer.cpp" using namespace std; int Komputer::licznik = 0; int main() { //Karta *karta; //karta = new Karta(); cout << "Jest " << Komputer::zwrocLicznik() << " komputerow" << endl; Komputer k1; cout << "Jest " << Komputer::zwrocLicznik() << " komputer" << endl; Komputer k2; cout << "Sa " << Komputer::zwrocLicznik() << " komputery" << endl; Komputer* k3; cout << "Jestesmy po deklaracjach/definicjach" << endl; k3 = new Komputer(); cout << "Sa " << Komputer::zwrocLicznik() << " komputery" << endl; cout << (k1 == k2) << endl; cout << "procesory sa takie same wiec zwrocilo 1" << endl; k2.setProducent("Intel"); cout << (k1.operator==(k2)) << endl; cout << "procesory nie sa takie same wiec zwrocilo 0" << endl; cout << "Jest " << Komputer::zwrocLicznik() << " komputerow" << endl; delete k3; cout << "Jest " << Komputer::zwrocLicznik() << " komputerow bo usunelam jeden hah" << endl; Komputer k5; cout << "Jest " << Komputer::zwrocLicznik() << " komputerow" << endl; Komputer k6(k5); // konstruktor kopiujacy Komputer k7; Komputer k8; k7 = k8; k7 = k2 + k1; k2.dodajkarta(); k2.usunkarta(); k1.infokomp(); return 0; }
-
- konstruktor kopiujacy
- operator przypisania
- (3 więcej)