构造具有强制转换参数的对象时的原型函数警告

时间:2017-06-01 22:29:48

标签: c++

好的,所以我知道人们得出prototyped function not called错误的典型原因。这不是that case

考虑以下课程:

class FF {
public:
   FF(float f):_f(f){}
   float _f;

   void DoSomething(float f) { _f = f; }
};

我尝试使用以下代码构造一个FF对象,该代码将int转换为float。注意:我正在使用遗留代码,它使用这种铸造风格 - 我知道它不是现代方式。

int x = 0;
FF fTest(float(x));

VS2013发出警告:'FF fTest(float)': prototyped function not called (was a variable definition intended?)

为什么VS认为这是一个函数原型? FF只包含1个构造函数。

有趣的是,当用于调用对象上的函数时,相同的代码格式不会发出警告:

int x = 0;
FF fTest(0.f);
fTest.DoSomething(float(x));

0 个答案:

没有答案