gpt4 book ai didi

c++ - 如果要执行 const_cast,为什么要将参数设置为 const?

转载 作者:太空狗 更新时间:2023-10-29 23:27:52 25 4
gpt4 key购买 nike

有一个链表示例,其中有人试图附加一个节点。这是代码的一部分:

void Append(ListElement<T> const* ptr, T const& datum)
{
ListElement<T>* temp = const_cast<ListElement<T>*>(ptr);
// ...
}

如果您打算将其丢弃,那么将 ptr 设为指向 const 的指针有何意义? ptr 没有在函数的任何地方使用,只是 temp,所以让它成为指向 non-const 的指针不是更好吗这样人们就知道该对象可能会被修改?

是否有理由将参数设为 const,然后将其const_cast 放入正文中,而不是将其设为非 const?

最佳答案

What is the point in making ptr a pointer to const if you're going to just cast it away?

无。

它打破了函数契约,是一个人在代码设计中迷失的例子。


为了说明,它看起来像这样

  • A:嘿,你可以从那个对象中读取,但只能读取。
  • B:好的,给我,我只读一遍。
  • B:在上面写

关于c++ - 如果要执行 const_cast,为什么要将参数设置为 const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023302/

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