提问者:小点点

在非常量成员函数中调用常量成员函数,而它们都是相同的函数名[重复]



class MyClass {
public:
    void Bar()const
    {
        std::cout << "A::Bar() const\n";
    }

    void Bar()
    {
        std::cout << "A::func()\n";
        //call Bar()const in here
    }
};

我想知道我应该如何调用bar()成员函数中的bar()const成员函数?


共1个答案

匿名用户

您需要将对象强制转换为const限定版本,以调用const函数。 那看起来就像

void Bar()
{
    std::cout << "A::func()\n";
    const_cast<const MyClass&>(*this).Bar(); // calls const version
}