在C ++中返回错误的类型

时间:2014-11-18 11:23:42

标签: c++

我有一个Color类,它包含三个float组件(r,g,b)。

我必须编写以下函数:

Color getColor(unsigned char values [],int i)

通常我应该像这样编程:

Color getColor(unsigned char values[], int i){
     return Color((float) values[i]/255.0, (float) values[i+1]/255.0, (float) values[i+2]/255.0);
}

但是我做错了

return values[i];

当我编译时,我没有得到任何编译错误,我也没有得到运行时错误。

为什么会这样?

2 个答案:

答案 0 :(得分:5)

这可能是Color类的非显式构造函数接受unsigned char作为其参数的结果。

这意味着您在Color类中使用单个参数或多个参数作为默认参数。

答案 1 :(得分:0)

检查Color类中的构造函数,并用所需的构造函数覆盖。