转换运算符如何返回值?

Aru*_*run 17 c++ casting operators

对于A类,整数转换运算符看起来像;

operator int() //Here we don't specify any return type
{
    return intValue;
}
Run Code Online (Sandbox Code Playgroud)

当上面的函数看起来没有指定返回值类型时,它是如何返回一个值的?它似乎没有返回"任何东西",但我知道它不是void.

如果未指定返回类型,这有何意义?

ken*_*ytm 21

返回类型operator T()总是如此T.这是C++的一个特例.

它不使用标准函数原型语法,T foo()因为只有返回类型不同的2个具有相同名称的函数不能共存(例如int foo()与之冲突double foo()).如果使用此语法,则只能定义1个转换运算符重载,这是不合需要的.


ava*_*kar 6

operator T()where T是类型的返回值总是如此T.