为什么我的派生类隐藏了基类的operator=(double)
,而其他运算符却能正常工作?
struct base
{
double d;
virtual double operator=(double v)
{
return d = v;
}
virtual double operator[](int index)
{
return d;
}
};
struct derived : public base
{
};
void main()
{
derived dv;
dv = 20.0; // generates error
dv[0]; // Works
}
是否可以公开 operator=
而无需在派生类中重新定义它?
最佳答案
是的,你可以这样暴露它:
struct derived : public base
{
using base::operator=;
};
调用失败,因为隐式生成的 operator=(const derived&)
隐藏了继承的 operator=(double)
。
关于c++ - operator=(double) 隐藏在派生类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26705220/