gpt4 book ai didi

c++ - 当类是子类时重载赋值运算符

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:53 25 4
gpt4 key购买 nike

如何使用赋值运算符实现设置基类成员?例如,如果有人像这样在派生类中定义赋值运算符:

(其中 colourColour() 都是基类的成员 - 意味着下面指出的行是非法的)

Derived& Derived::operator=(const Derived& rhs) 
{
if (&rhs != this)
{

Colour(rhs.colour); // not allowed
Colour(rhs.Colour()); // not allowed
}
return *this;
}

解决方法是什么?有没有办法在基础中链接运算符重载?我会做类似...的事情吗?

Derived& Derived::operator=(const Derived& rhs) : Base::operator=(rhs)
...?

最佳答案

它是这样完成的:

class B
{
public:
B& operator=( const B & other )
{
v = other.v;
return *this;
}
int v;
};

class D : public B
{
public:
D& operator=( const D & other )
{
B::operator=( other );
return *this;
}
};

关于c++ - 当类是子类时重载赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433938/

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