While going through a codebase, I ran into a statement similar to the following:
new Class().MemberFunction();
What is this statement actually doing? Is it calling the member function without creating an object of this class?
While going through a codebase, I ran into a statement similar to the following:
new Class().MemberFunction();
What is this statement actually doing? Is it calling the member function without creating an object of this class?
It is creating a new instance of Class
- as you can clearly see the new Class()
part of the code - the only thing that's not "usual" about it is that it doesn't store the reference to that instance, but just use it to call the MemberFunction();
.
This means that whoever wanted to execute the MemberFunction()
did not need to keep the reference to the specific instance (which in turn, might mean that the MemberFunction()
should be converted to a static method, but there's not enough information to know for sure).
Create a new class ( because of 'new' )
Launch MemberFunction() which you called
it means, it doesn't work what you actually wanted.
even static already creates class once.