C++ --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?相关的知识,希望对你有一定的参考价值。

如果函数名相同,在相同的作用域内,其参数类型、参数个数,参数顺序不同等能构成函数重载。

有趣的是如果同时在类中,对于函数名相同参数列表也相同的成员函数的const函数和非const函数能够构成重载。
它们被调用的时机为:如果定义的对象是常对象,则调用的是const成员函数,如果定义的对象是非常对象,则调用重载的非const成员函数。

#include <iostream>

int override_test(int a, int b)
{
        return a + b;
}

int override_test(int a, float b)
{
        return a + b;
}

/*
int override_test(int a, float b) const
{
        return a + b;
}
*/

class OverrideTest
{
public:
        int Function(int a, int b);
        int Function(int a, float b);
        int Function(int a, float b) const;

private:
        int a;
        int b;

};

int main(void)
{
        return 0;
}

以上是关于C++ --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?的主要内容,如果未能解决你的问题,请参考以下文章