读书人

C++可以根据返回值来区分不同的函数吗

发布时间: 2012-03-01 10:25:47 作者: rapoo

C++可以根据返回值来区分不同的函数吗?
C++ 可以根据返回值来区分不同的函数???

C/C++ code
    template<>     inline Int8 CDataConvertor::StrToInt(const UInt8* pBuf, UInt8 uLen)    {        return (StrToIntByAtoi<Int8>(pBuf, uLen));    }    template<>    inline Int16 CDataConvertor::StrToInt(const UInt8* pBuf, UInt8 uLen)    {        return (StrToIntByAtoi<Int16>(pBuf, uLen));    }    template<>    inline Int32 CDataConvertor::StrToInt(const UInt8* pBuf, UInt8 uLen)    {        return (StrToIntByAtoi<Int32>(pBuf, uLen));    }


[解决办法]
楼上的别误导,不能通过返回值来区分函数的。
打个比方, int fun(); 和 char fun();

调用者很可能这样调用函数
fun();

如果通过返回值来区分,这时候编译器就不知道该怎么办了

所有不能通过返回值来区分函数的。

[解决办法]
不能。。。。

C++ 可以通过参数不同来区分,但返回值是不行的。。
通过参数是因为在编译的时候就对函数做了重新命名。
[解决办法]
楼主说的就是函数重载吧,函数重载要求函数必须是行参列表不一样,行参个数不一样,类型不一样,或者是排列次序不一样,总之是要行参列表不一样,这样才能实现重载,返回值不同不能实现重载
[解决办法]
返回值类型不属于函数的 signature,

对于通过重写成员函数写改变了返回值类型的, 称为返回值协变,

是一个技术.
[解决办法]
重载函数:出现在相同作用域中的两个函数,具有相同的名字而形参表不同。
不能仅仅基于不同的返回类型而实现重载。函数名和形参表完全相同,仅仅是返回类型不同,会被视为重复声明。
[解决办法]
不能 函数重载 也只是判断函数 个数 类型 顺序
不判断 返回值的
[解决办法]
不能,重载只是参数类型和个数
[解决办法]
标示c++函数有函数名,函数返回值,参数个数,和参数类型。如果这几个有一个不同,那么就是不同的函数

读书人网 >UNIXLINUX

热点推荐