为什么我的派生类隐藏基类的operator=(double)
,而其他操作符正常工作?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=
而无需在派生类中重新定义它?
你主要的必须是返回类型'int',而不是'void'。 – NaCl 2014-11-02 22:35:29