gpt4 book ai didi

c++ - const 函数可以调用局部对象上的非常量函数吗?

转载 作者:行者123 更新时间:2023-11-28 02:40:49 24 4
gpt4 key购买 nike

我有一个关于 const 函数的问题:const 函数可以在函数中的局部对象上调用非 const 函数吗?这是我正在谈论的示例:

template <class T>
Set<T> Set<T>::setUnion (const Set<T> & other) const
{
Set<T> unionSet; //create union set
unionSet.merge(internalStorage); //merge it with our current set
unionSet.merge(other.internalStorage); //merge it with other set, duplicates will not be added

return unionSet;
}

此函数接受两个集合并返回集合的并集。但问题是合并函数不是 const,合并函数也调用 add 函数,它也不是 const,所以我看不到任何其他方法来创建仅包含这两个函数的 union 集,因为 setUnion 函数必须是常量。

PS: 我知道不用 const 函数的解决方案,我这样做的原因是因为我的教授是这样定义的。谢谢。

最佳答案

是的。 const 成员函数的唯一限制是它不能修改它所调用的对象;它可以修改任何其他(非常量)对象。

关于c++ - const 函数可以调用局部对象上的非常量函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068449/

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