fork download
  1. #include<bits/stdc++.h>
  2. #define IOF ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  3. #define ll long long
  4. using namespace std;
  5.  
  6. class c{
  7. int cnt;
  8. public:
  9. c():cnt(0){cout << "default\n";}
  10. c(int x):cnt(x){cout << "param\n";}
  11. int get_cnt(){return cnt;}
  12. c operator++(){
  13. cout << "pre\n";
  14. return c(++cnt);
  15. }
  16. c(const c& tmp){
  17. cout << "copy\n";
  18. cnt = tmp.cnt;
  19. }
  20. c operator++(int){
  21. cout << "post\n";
  22. return c(cnt++);
  23.  
  24. }
  25. void operator = (c tmp){
  26. cout << "equal\n";
  27. cnt = tmp.cnt;
  28. }
  29. ~c(){
  30. cout << "des\n";
  31. }
  32.  
  33. };
  34.  
  35. int main() {
  36. c ob;
  37. c ob1(3);
  38. ob++;
  39. ++ob;
  40. cout << ob.get_cnt() << ' ' << ob1.get_cnt() << '\n';
  41. ob = ob1++;
  42. c ob2(ob1++);// لما بتشيل ال ++ بتنادي الكوبي كونستراكتور لما بتحطها معرفش بيحصل ايه
  43. c ob3 = ob2;
  44. cout << ob.get_cnt() << ' ' << ob1.get_cnt() << '\n';
  45.  
  46.  
  47. return 0;
  48. }
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
default
param
post
param
des
pre
param
des
2 3
post
param
equal
des
post
param
copy
3 5
des
des
des
des