#include <iostream>
struct Foo
{
Foo(int d) : x(d) {}
int x;
};
int main()
{
double x = 3.14;
Foo f( int(x) );
std::cout << f.x << std::endl;
return 0;
}
当我编译此代码时,我收到以下错误:
[错误] 请求 'f' 中的成员 'x',它是非类类型 'Foo(int)'
假设int main
我删除int
了 in Foo f(int(x))
。我的意思是,如果我这样写:
Foo f(x);
代码编译正确,输出为 3。
那么如果我们键入像Foo f(int(x))这样的参数来调用构造函数会发生什么?