gpt4 book ai didi

c++ - QSharedData 和运算符=

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:34 28 4
gpt4 key购买 nike

最近我想实现隐式共享功能,就像 Qt 对其 QSharedDataQSharedDataPointer 类所做的那样,所以我查看了它们的源代码并代替了 QSharedData 我找到了这三行:

private:
// using the assignment operator would lead to corruption in the ref-counting
QSharedData &operator=(const QSharedData &);

但是我不明白 operator= 怎么会破坏引用计数。

如果我只是不将其设为私有(private)并将其实现留空,它是否可以达到相同的目的?

即如果我简单地这样写:

    public:
QSharedData &operator=(const QSharedData & ) { return *this; }

最佳答案

QSharedData 的全部目的是维护引用计数。如果将一个分配给另一个,每一侧的引用计数应该发生什么变化?正如您正确确定的那样:没有。将一个 QSharedData 分配给另一个是没有意义的,因此明智的做法是在编译时阻止它。

关于c++ - QSharedData 和运算符=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15381288/

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