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
}