Total members 11894 |It is currently Thu Nov 21, 2024 10:25 am Login / Join Codemiles

Java

C/C++

PHP

C#

HTML

CSS

ASP

Javascript

JQuery

AJAX

XSD

Python

Matlab

R Scripts

Weka





I got a question. I have a class B that has this method:
Code:
operator int()
{
std::cout << "int()" << std::endl;
return i;
}


I dont know exactly how it works but every time I call this method:

Code:
int foo1(B b)
{
return b;
}


it prints int().




Author:
Proficient
User avatar Posts: 280
Have thanks: 1 time

Implicit class conversion to another type using operator overloading.
The C++ compiler makes a best-guess effort at creating a successful
compile by looking at the existing class methods and the type the code
is expecting and then creating the necessary code as output. This is,
IMO, one of the coolest features of C++ (you can even "typecast" between
classes!) but, occasionally, one of the more annoying ones should you
depend on the feature too much. That is, you can "see" a clear path to
the implicit solution but the compiler insists there isn't one.

_________________
Please recommend my post if you found it helpful


Author:
Proficient
User avatar Posts: 228
Have thanks: 0 time
Post new topic Reply to topic  [ 2 posts ] 

  Related Posts  to : operator int()
 Using the ? Operator     -  
 What is the % operator     -  
 Object without new Operator     -  
 stream operator     -  
 trinary operator     -  
 operator overloading     -  
 What is Operator Overloading? !!!     -  
 Sizeof Operator     -  
 unary operator overloading     -  
 Operator Precedence table     -  



Topic Tags

C++ OOP
cron





Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All copyrights reserved to codemiles.com 2007-2011
mileX v1.0 designed by codemiles team
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com