自定义 class 的 const 实例化是否也使 class 中的*所有*都成为常量?

Does a const instantiation of a custom class make *everything* in the class constant too?

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

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

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

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

  1. 本网站题外话。

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

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