gpt4 book ai didi

c++ - 子类,赋值运算符重载?

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

如果我有以下类(class):

class TestA
{
public:
const TestA &operator=(const int A){return *this;}
};

class TestB : public TestA
{
public:
//Inheritance?
};

问题假定类 TestA 和类 TestB 在变量方面具有完全相同的内容:赋值运算符(或任何其他运算符)是否被继承?

以下是否有效?

class TestB : public TestA
{
public:
using TestA::operator=;
//Inheritance?
};

如果有效,会有什么不同吗?

最佳答案

默认情况下,派生类隐藏赋值运算符(因为编译器总是为任何类T生成T& operator = (),如果未标明)。这使得继承的 operator = 不可用。

Yes 当您使用 using 关键字指定它们时;它们变得可用Demo .所以您的代码片段确实有意义。

public: using TestA::operator=;

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

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