C++ | this pointer | Question 5
Predict the output of following C++ program?
#include<iostream>
using namespace std;
class Test
{
private :
int x;
public :
Test() {x = 0;}
void destroy() { delete this ; }
void print() { cout << "x = " << x; }
};
int main()
{
Test obj;
obj.destroy();
obj.print();
return 0;
}
|
(A) x = 0
(B) undefined behavior
(C) compiler error
Answer: (B)
Explanation: delete operator works only for objects allocated using operator new (See this post). If the object is created using new, then we can do delete this, otherwise behavior is undefined.
See “delete this” in C++ for more examples.
Quiz of this Question
Last Updated :
10 Jul, 2018
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...