隐式类类型转换问题.

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:56:03
#include <iostream>
class F
{
int x;
public:
F() {};
bool a(const F &b)
{
return x==b.x;
}
};

int main()
{
int x=6;
F c;
c.a(x);
system("pause");
}
为什么不会隐式转换. 帮忙改下.要不你重写个.
domo5231 - 见习魔法师 三级
不行. 我要他隐式转换

你的程序需要一个构造函数
F(int &temp):x(temp){}

你没有明白你说的
隐式转换
int x = 1;
比方说有函数 func(F &temp)
你调用函数用 func(x)
才会发生
隐式转换

无论如何必须有构造函数
F(int &temp):x(temp) {};
如果前面家explicit
则抑制你说的隐式转换

你好 zhulinjia2,我不大理解你的意思,但我帮你修改了一下程序,
你看是否中意?
#include <iostream.h>
class F
{
int x;
public:
F(int i=0) {i=x;}
bool a(const F &b)
{
return x==b.x;
}
};

int main()
{
F x(6);
F c;
cout<<"c.a(x)运算结果是:";
cout<<c.a(x)<<"\n";

return 0;
}