gpt4 book ai didi

c++ - 自定义类的 const 实例化是否也使类中的 *everything* 成为常量?

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

  1. 大多数编译器实际上是如何处理 const 的?这在技术上意味着什么? (实际上不是)

当我说一切时,我的意思是,假设我有一个自定义类,其中包含一个容器作为成员字段,然后是一个通过引用值传递并将它们附加到该成员字段的函数。

  1. 如果我有这个类的 const 实例化,常量会过滤掉吗?

  2. 如果我有一个非 const 容器的 const STL 迭代器(我的 sharedPointers 指向我的自定义类的实例化),const 到底是什么?我可以使用上述功能更改容器的内容吗?指向的数据是否可变,但没有别的?

最佳答案

  1. 本网站的主题。

  2. 如果我有这个类的 const 实例化,常量会被过滤掉吗? 是。

  3. 如果我有一个非 const 容器的 const STL 迭代器。如果 const iterator 那么您不能递增或递减迭代器,但您可以使用它修改其所指。如果 const_iterator 那么你可以递增或递减它,但你不能用它来修改它的所指对象。在任何一种情况下,容器的其他非常量迭代器也可能存在,因此容器可能会被它们修改。

关于c++ - 自定义类的 const 实例化是否也使类中的 *everything* 成为常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37017183/

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