Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class A {
  4.     private:
  5.         int val;
  6.  
  7.     public:
  8.         A() : val(0) {
  9.             std::cout << "A()" << std::endl;            
  10.         }
  11.  
  12.         ~A() {
  13.             std::cout << "~A() | val: " << val << std::endl;
  14.         }
  15.  
  16.         A(const A& a) : val(a.val) {
  17.             std::cout << "A(const A& a) | a.val: " << a.val << std::endl;
  18.         }
  19.  
  20.         A(int v) : val(v) {
  21.             std::cout << "A(int v) | v: " << v << std::endl;
  22.         }
  23.  
  24.         A& operator =(const A& a) {
  25.             std::cout << "operator =(const A& a) | a.val: " << a.val << std::endl;
  26.  
  27.             val = a.val;
  28.  
  29.             return *this;
  30.         }
  31.  
  32.         A& operator =(int v) {
  33.             std::cout << "operator =(int v) | v: " << v << std::endl;
  34.  
  35.             val = v;
  36.  
  37.             return *this;
  38.         }        
  39.  
  40.         operator int() const {
  41.             std::cout << "operator int() const | return: " << val << std::endl;
  42.  
  43.             return val;
  44.         }                      
  45. };
  46.  
  47. int main() {
  48.     std::cout << "-----------------------------------------------" << std::endl;
  49.     A a = 1;
  50.     const A& ra = a > 0 ? a : A(7);    
  51.     std::cout << "-----------------------------------------------" << std::endl;
  52.     a = 2;
  53.     std::cout << "-----------------------------------------------" << std::endl;
  54.     std::cout << a << std::endl << ra << std::endl;
  55.     std::cout << "-----------------------------------------------" << std::endl;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement