C ++将此传递给非Const函数

时间:2016-12-12 16:17:28

标签: c++ pointers this

示例类:

int i;

 void Classname::a1(const Classname& var){

    var.a2(*this);

 }

 void Classname::a2(const Classname& var){

    var.i = 100;

 }

如何在不向const添加const的情况下完成这项工作?

1 个答案:

答案 0 :(得分:3)

  • 简短回答 - 你不应该。

    varconst,这意味着您根本不应该更改任何内容; var.i=100会给其他人带来意想不到的后果。

  • 更长的答案 - 删除const,或使i变为可变。

    mutable关键字表示即使对象为const,也可以更改变量。或者,通过将其设为非const,您可以更改它,人们可以期望修改它们的对象。

  • 非常讨厌的回答 - 将const - 赶走了。

    我甚至没有去充实这一部分,因为它非常可怕,这样做会导致a velocoraptor attacking you where you sit