Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class K1 {
- string* p1;
- public:
- K1() : p1(new string[2]) {p1[0] = "Nothing"; p1[1] = "Nothing";};
- K1(const string& one, const string& two) { p1 = new string[2]; p1[0] = one; p1[1] = two; };
- ~K1() { delete p1; };
- friend ostream & operator <<(ostream &, const K1&);
- string & operator[](size_t i) const { // indexing operator
- return p1[i];
- }
- };
- ostream & operator <<(ostream & out, const K1 & object) {
- return out << object.p1[0] << " " << object.p1[1] << endl;
- }
- class K2 {
- K1 p1;
- double p2;
- public:
- K2(): p2(0){};
- K2(const string & one, const string & two, const double & price): p1(one, two), p2(price){};
- K2(const K2 & object){ // konstruktor kopiacy
- p1 = object.p1;
- p2 = object.p2;
- }
- K2 & operator=(const K2 & object){ // operator przypisania
- if(this != &object){
- p1 = object.p1;
- p2 = object.p2;
- }
- return *this;
- }
- const K2 operator-(const double & value) const {
- return K2(p1[0], p1[1], p2 - value);
- }
- friend ostream & operator <<(ostream &, const K2&);
- };
- ostream & operator <<(ostream & out, const K2& object){
- return out << object.p1[0] << " " << object.p1[1] << " " << object.p2 << endl;
- }
- int main() {
- K2 ob1, ob2;
- const K2* wsk1 = new K2("kawa", "z mlekiem", 4.50);
- const K2 ob3(*wsk1);
- delete wsk1;
- wsk1 = 0;
- const K2* wsk2 = new K2(ob3);
- ob2 = *wsk2;
- cout << ob1 << *wsk2;
- delete wsk2;
- wsk2 = 0;
- cout << ob2;
- cout << ob2 - 1.25;
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement