gpt4 book ai didi

c++ - operator=(double) 隐藏在派生类中

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:38 25 4
gpt4 key购买 nike

为什么我的派生类隐藏了基类的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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com