CoolInterview.com - World's Largest Collection of Interview Questions
Send Free SMS
 Interview Questions  
 Our Services  


INTERVIEW QUESTIONS LANGUAGES C++ DETAILS
Question :
Why can't we overload the sizeof, :?, :: ., .* operators in c++?


Category C++ Interview Questions
Rating (4.2) By 40 users
Added on 8/18/2006
Views 5899
Rate it!
Answers:

The restriction is for safety.For example if we overload . operator then we cant access member in normal way for that we have to use ->.



I think the above answer is not appropriate .

According to me all these operators use name instead of operand ,so we can`t pass any name (either of variable,class) to any function . We must have to pass the operand for that .



 Posted by: Ankur Bamby    

Contact Ankur Bamby  Contact Ankur Bamby

Nice answer, but it does not suite for :? operator as it does not take name as parameter.
BTW, the reason we cannot overload :? is that it takes 3 argument rather than 2 or 1. There is no mechanism available by which we can pass 3 parameter during operator overloading.
For other operators, the previous ans is enough.



 Posted by: Tapesh Maheshwari    

Contact Tapesh Maheshwari  Contact Tapesh Maheshwari

In any languages all operator has some precedence, due to precedence they work.like +,-,() all have some precedence, as we know operator overloading work differently without changing the specific meaning of the operator and in this case :,?:, etc. have no predefined precedence.And if we want to overload these operator then compiler does not understand and conflicts, and generates an error.



 Posted by: jitendra singh    

Contact jitendra singh  Contact jitendra singh

According to Bjarne Stroustrup, the operators ., .* ,:?, :: & sizeof() cannot be overloaded as they take name as their argument whereas all other operators take value as argument.

Class A
{
public:
int i;
};

A a,b,c;

Eg: c = a+b - both a & b actually refer to some memory location, so "+" operator can be overloaded, but the "." operator, like a.i actually refers to the name of the variable from whom the memory location has to be resolved at time and thus it cannot be overloaded.




 Posted by: Sunil Paduchuru    

Contact Sunil Paduchuru  Contact Sunil Paduchuru


If you have the better answer, then send it to us. We will display your answer after the approval.
Name :*
Email Id :*
Answer :*
Verification Code Code Image - Please contact webmaster if you have problems seeing this image code Not readable? Load New Code
Process Verification  Enter the above shown code:*
Inform me about updated answers to this question

   
Related Questions
View Answer
What happens to the member pointers when an exception occurs in constructor, while allocating memory?How can we over come this ?

View Answer
Is there any way to write a class such that no class can be inherited from it. Please include code

View Answer
The class which acts as interface between the C++ and the Java layer?

View Answer
What is virtual constructors/destructors?


View Answer
What do you mean by pure virtual functions?


View Answer
What is namespace?


View Answer
What is RTTI?


View Answer
What is a template?


View Answer
What do you mean by inline function?


View Answer
What is virtual class and friend class?
View Answer

Please Note: We keep on updating better answers to this site. Subscribe to our newsletter to get notified when better answer is posted.

Notify me when better answer is posted!
Email:

View ALL C++ Interview Questions

User Options
Sponsored Links


Copyright ©2003-2010 CoolInterview.com, All Rights Reserved.
Privacy Policy | Terms and Conditions
Page URL: http://www.coolinterview.com/interview/10844/default.asp?cachecommand=bypass


Download Yahoo Messenger | Placement Papers| FREE SMS | ASP .Net Tutorial | Web Hosting | Free SMS | Dedicated Servers | Joke of the Day

0.72