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,一个不带,会有问题吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 c++ winform 中同时运行两个函数?

算法导论 红黑树 实现

explicit:C++规定,当定义了只有一个参数的构造函数时,同时也定义了一种隐式的类型转换

急!!C++中如何同时运行两个函数??怎样通过代码来实现???? 如果是用多线程 ,那代码怎么写呢?

C++中如何定义变量

C++:类中两个易被忽略的默认函数