C++ 派生类中的方法重写使基类中的重载方法不可用

C++ 派生类中的方法重写使基类中的重载方法不可用,c++,overriding,overloading,C++,Overriding,Overloading,在基类中,我有两个同名的方法,还有一个同名的虚拟方法。如果重写基类中的SetValuevirtual方法,则在实例化派生类时,无法使用基类中的其他两个非虚拟方法。这是重载和重写方法的默认行为吗 class Base { public: virtual void SetValue(int v) { a = v; } void SetValue(std::string str) { b = str; } vo

在基类中,我有两个同名的方法,还有一个同名的虚拟方法。如果重写基类中的
SetValue
virtual方法,则在实例化派生类时,无法使用基类中的其他两个非虚拟方法。这是重载和重写方法的默认行为吗

class Base
{
public:
    virtual void SetValue(int v)
    {
        a = v;
    }

    void SetValue(std::string str)
    {
        b = str;
    }

    void SetValue(bool val)
    {
        c = val;
    }

private:
    int a;
    std::string b;
    bool c;

};


class Derived : public Base
{
public:
    virtual void SetValue(int v) override
    {
        //
    }
};




int main()
{

    Derived d;
    d.SetValue("string"); // cant use string as argument

}