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

标签 c++ pointers this

示例类:

int i;

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

    var.a2(*this);

 }

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

    var.i = 100;

 }

如何在不向 a2 添加 const 的情况下使它工作?

最佳答案

  • 简短的回答 - 你不应该。

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

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

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

  • 非常讨厌的答案 - 抛弃 const-ness。

    我什至不打算充实这部分,因为它太可怕了,这样做会导致 a velocoraptor attacking you where you sit .

关于C++ 将此传递给非 Const 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105047/

相关文章:

c++ - 如果 C++ 中的 std::map 中的比较函数自反为真,它如何工作?

c++ - 在 shared_ptr 容器中查找元素?

javascript - 词法 this 和闭包

c++ - 在 '*' 标记之前缺少模板参数

c++ - 在 C++ 中删除映射迭代器的行为不一致

c++ - 在 Arduino 中编程时避免使用指针和#defines?

javascript - ‘this’ vs. 'bind.(this)' vs. 将事件传递给事件处理程序,React JS vs. vanilla JavaScript

Javascript 分配中的左侧无效

javascript - 用Qt制作一个简单的LED指示灯

c - 如何显示指针指向的值?