whyFunctionCannotOverLoadByReturnValue

whyFunctionCannotOverLoadByReturnValue ?

/*eton@230703 whyFunctionCannotOverLoadByReturnValue.cc */
# include <iostream>
/*
* because cannot know the return type before confirm which funciton to be invoke.!!!
https://stackoverflow.com/questions/9568852/overloading-by-return-type
*
*
*/
using namespace std;
int fxxx(int a){
cout<<"int a="<<a<<"\n";
return 0;
}
float fxxx(unsigned int a){
cout<<"f int a="<<a<<"\n";
return 1.2;
}
class My {
public:
int getInt(int a)const{
cout<<"int a="<<a<<"\n";
}
char getChar(int a)const
{
cout<<"char a="<<a<<"\n";
}
};
class Proxy
{
My const* myOwner;
public:
Proxy( My const* owner ) : myOwner( owner ) {}
operator int() const
{
return myOwner->getInt(42);
}
operator char() const
{
return myOwner->getChar(43);
}
};
int main()
{
int a=fxxx(42);
float b=fxxx(43);
double c=fxxx(44);
My _m;
Proxy p(&_m);
a=int(p);
b=char(p);
//error: conversion from ‘Proxy’ to ‘double’ is ambiguous
//c=double(p);
return 0;
}
posted on   Eton..Bee  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示