gpt4 book ai didi

c++ - 委托(delegate)给 removeAll() 的方法的常量指针参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:22 24 4
gpt4 key购买 nike

考虑这样的方法:

void Parent::removeChild(Child *child)
{
children.removeAll(child);
}

在这种情况下,由于 child 本身从未被修改,因此可以使它成为一个 const 指针。但是由于 children 是 QList 类型,removeAll() 需要一个对 非常量 指针的 const 引用。

推荐的处理方法是什么?跳过方法参数的常量性或 const_cast const 指针以适应 removeAll() 方法?

最佳答案

棘手的一个。您应该添加更多代码,但是来自 docs我假设你有一个 QList<Child*>并且不能将其更改为 QList<const Child*>因为您需要以非常量方式访问实际对象。

由于所有 removeAll()函数的作用是删除列表中的条目,它绝不会修改指向的 Child (它怎么可能,它对 Child 类一无所知)在这里使用 const_cast 是安全的.

关于c++ - 委托(delegate)给 removeAll() 的方法的常量指针参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3613590/

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