64,636
社区成员
发帖
与我相关
我的任务
分享
class A
{ public: // 这句一定要加上!
operator int(){};
operator long(){};
};
#include <iostream>
using namespace std;
extern void fun1(int i)
{
cout<<"get int value:"<<i<<endl;
};
extern void func2(long l)
{
cout<<"get long value:"<<l<<endl;
};
class A
{
public:
operator int()
{
cout<<"convert to int"<<endl;
return (int)56;
}
operator long()
{
cout<<"convert to long"<<endl;
return (long)65;
}
};
int main(int argc,char *argv)
{
A a;
fun1(a);
func2(a);
}
class A
{ operator int();
operator long();
}
void fun(int);
void fun(long);
void fun(char);
int main()
{
A a;
fun(a); // 重载
}
//你的结果:
fun2(a);//: error C2664: 'fun2' : cannot convert parameter 1 from 'class A' to 'char'
class A
{
public:
operator int(){cout << "int\n";};
operator long(){cout << "long\n";};
} ;
extern int fun1(int){return 0;};
extern int fun2(char){return 0;};
extern int fun3(long){return 0;};
void main(void)
{
A a;
fun1(a);
//fun2(a);//: error C2664: 'fun2' : cannot convert parameter 1 from 'class A' to 'char'
fun3(a);
}