Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


What will happen if when say delete this ?

Answers were Sorted based on User's Feedback



What will happen if when say delete this ?..

Answer / mms zubeir

There are two scenarios:

1. Using "delete this;" in destructor

Here the call will be a recursive call to the destructor
infinitely. So the program hangs here.

2. Using "delete this;" in other members of a class
including constructor.

In this case, the call is a sucide call since the object
tries to delete itself which is nothing but sitting in a
space and destroy that space itself. That is definitely a
memory crash.

Is This Answer Correct ?    13 Yes 4 No

What will happen if when say delete this ?..

Answer / hidden prairie

delete this will call the destructor, but should not be
called in the destructor but in any other member function.

Is This Answer Correct ?    8 Yes 0 No

What will happen if when say delete this ?..

Answer / hitout

There are different cases to this
1) If the memory is allocated in stack, delete this should
not be called since it calls destructor twice.
2) delete this can be called in all functions except
destructor if the memory is allocated on heap(ie if new
operator is used and the object is not explicitly deleted).

3) Delete this in destructor will always cause an infinite loop.

Is This Answer Correct ?    6 Yes 1 No

What will happen if when say delete this ?..

Answer / hemant

There are two scenarios:

1. Using "delete this;" in destructor

Here the call will be a recursive call to the destructor
infinitely. So the program hangs here.

2. Using "delete this;" in other members of a class
including constructor.

In this case, the call is a sucide call since the object
tries to delete itself which is nothing but sitting in a
space and destroy that space itself. That is definitely a
memory crash.

Is This Answer Correct ?    4 Yes 2 No

What will happen if when say delete this ?..

Answer / priya

Using delete this in destructor will lead to recursive loop
which will lead to Stack overflow...so avoid it over
here...however there are few times where your code with
delete this will just work fine..like in the usage of
garbage colletors in C++.Chk the below code...which works
with no issues:
class temp
{
public:
temp(){std::cout<<"Constructor"<<std::endl;}
~temp(){std::cout<<"Destructor"<<std::endl;}
void destroy() {std::cout<<"In class
temp"<<std::endl;delete this;}

};
int main()
{
temp *t = new temp;
t->destroy();
return 0;
}

Is This Answer Correct ?    2 Yes 0 No

What will happen if when say delete this ?..

Answer / sudhir

delete this will not work because 'this' is not available to
global functions .this is only available to class member
functions.

Is This Answer Correct ?    0 Yes 3 No

What will happen if when say delete this ?..

Answer / dee

delete "this" lead in calling the destructor twice.
"this" poanter is related to object and the destructor is
called when the object goes out of scope.

Is This Answer Correct ?    2 Yes 6 No

Post New Answer

More C++ General Interview Questions

Which bitwise operator is used to check whether a particular bit is on or off?

0 Answers  


Explain the difference between using macro and inline functions?

0 Answers  


What is a constructor initializer list and when we use constructor initializer list?

3 Answers   Soft Info, TCS,


If dog is a friend of boy, and terrier derives from dog, is terrier a friend of boy?

0 Answers  


In which header file does one find isalpha() a) conio.h b) stdio.h c) ctype.h

0 Answers  


Is there any difference between dlearations int* x and int *x? If so tell me the difference?

16 Answers   Lason,


Why isn't sizeof for a struct equal to the sum of sizeof of each member?

0 Answers  


what are Operators and explain with an example?

0 Answers  


What is c++ hiding?

0 Answers  


How would you use the functions sin(), pow(), sqrt()?

0 Answers  


Evaluate the following expression as C++ would do :8 * 9 + 2 * 5 a) 82 b) 79 c) 370 d) list

0 Answers  


structure that describe a hotel with name, address,rooms and number of rooms

2 Answers  


Categories