Advertisement
Guest User

Untitled

a guest
Mar 26th, 2013
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class Operators
  4. {
  5. public:
  6.     Operators(int a, int b)
  7.     {
  8.         this->a = a;
  9.         this->b = b;
  10.     }
  11.     ~Operators()
  12.     {
  13.     }
  14.  
  15.     void operator+ (int a)
  16.     {
  17.         std::cout << "meghívva: void operator+ (int a)" << std::endl;
  18.     }
  19.     void operator+ (Operators& op)
  20.     {
  21.         std::cout << "meghívva: void operator+ (Operators& op )" << std::endl;
  22.     }
  23.     void operator++ (int a)
  24.     {
  25.         std::cout << "meghívva: void operator++ (int a)" << std::endl;
  26.     }
  27.     void operator- (int a)
  28.     {
  29.         std::cout << "meghívva: void operator- (int a)" << std::endl;
  30.     }
  31. private:
  32.     int a, b;
  33. };
  34.  
  35. void operator- (Operators& op)
  36. {
  37.     std::cout << "meghívva: void operator- (void) (globális névtérben)" << std::endl;
  38. }
  39.  
  40. void operator-(Operators& op, Operators& op2)
  41. {
  42.     std::cout << "meghívva: operator-(Operators& op, Operators& op2) (globális névtérben)" << std::endl;
  43. }
  44. /*Magyarul: ha osztályon belül terhelünk túl egy operátort, annak egyik operandusa muszáj,
  45.  hogy egy adott osztáy beli objektum legyen, különben mi értelme lenne az egésznek?:)
  46.  Ezért amikor az osztályban definiáljuk őket, ezt nem is kell oda írni, hanem alapból lesz egy ilyen paramétere
  47.  a túlterhelt függvénynek.
  48.  
  49.  A globális névtérben deklarált op. túlterhelésekről nem feltételezheti a fordítóprogram, hogy bármilyen köze van
  50.  egy osztályhoz, így annak külön meg kell adni paraméterként, hogy melyik osztállyal dolgozik. */
  51.  
  52. int main(void)
  53. {
  54.     Operators A(10,10);
  55.  
  56.     A+1;
  57.     A+A;
  58.     A++;
  59.     A-2;
  60.     -A;
  61.     A-A;
  62.  
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement