temp.re = this?

What happens when you attempt to compile and run the following code?

#include <iostream>

#include <string>

using namespace std;

class complex{

double re, im;

public:

complex() : re(1),im(0.4) {}

complex operator+(complex &t);

void Print() { cout << re << " " << im; }

};

complex complex: operator+ (complex &t){

complex temp;

temp.re = this?>re + t.re;

temp.im = this?>im + t.im;

return temp;

}

int main(){

complex c1,c2,c3;

c3 = c1 + c2;

c3.Print();

}
A . It prints: 1 0.4
B . It prints: 2 0.8
C . It prints: 0 0
D . Garbage value

Answer: B

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments