fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class vector {
  5.  
  6. public:
  7. int size;
  8.  
  9. vector() {
  10. cout << "In empty constructor\n";
  11. this->size = 5;
  12. cout << "size = " << size << endl;
  13. }
  14.  
  15. vector(int size) {
  16. cout << "In size constructor\n";
  17. this->size = size;
  18. cout << "size = " << size << endl;
  19. }
  20.  
  21. vector(const vector &v) {
  22. cout << "inside copy constructor\n";
  23. this->size = v.size;
  24. cout << "size = " << this->size << endl;
  25. }
  26.  
  27. vector operator ++() {
  28. vector v = *this;
  29. (this->size)++;
  30. return v;
  31. }
  32.  
  33. vector operator ++(int a) {
  34. cout << "a = " << a << endl;
  35. vector v = *this;
  36. (this->size)++;
  37. return v;
  38. }
  39.  
  40. vector operator+(vector &a) {
  41. vector v;
  42. v.size = this->size + a.size;
  43. return v;
  44. }
  45.  
  46. vector& operator=(vector &a) {
  47. cout << "Inside = assignment operator\n";
  48. this->size = a.size;
  49. return *this;
  50. }
  51.  
  52. ~vector() {
  53. cout << "In destructor for vector of size = " << this->size << endl;
  54. }
  55.  
  56. };
  57.  
  58. int main(int argc, char** argv) {
  59. vector v;
  60. vector v2(27);
  61. vector v3 = v + v2;
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0s 3140KB
stdin
Standard input is empty
stdout
In empty constructor
size = 5
In size constructor
size = 27
In empty constructor
size = 5
In destructor for vector of size = 32
In destructor for vector of size = 27
In destructor for vector of size = 5