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

时间:2016-05-04 01:58:51

标签: c++ compiler-construction const const-iterator

  1. 大多数编译器如何实际处理const?这在技术上意味着什么? (实际上不是)
  2. 当我说所有时,我的意思是,假设我有一个自定义类,其中容器作为成员字段,然后是一个通过引用值传递并将它们附加到该成员字段的函数。

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

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

1 个答案:

答案 0 :(得分:0)

  1. 该网站的主题。

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

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