C++ 什么';“删除警告的最佳名称是什么?”;阴影是';这";

C++ 什么';“删除警告的最佳名称是什么?”;阴影是';这";,c++,warnings,C++,Warnings,在我得到的代码中,有许多“阴影”是‘this’的一个成员,因为代码是这样写的 class my_class { .............. int ret; void fun(ret){ .......... this->ret = ret; } } 当我将要清理所有这些警告时,我认为更容易更改函数参数,如“fun(retNew)” 但是给它起个新名字看起来一点也不好。有人有好的建议吗?我想这类事情应该有一些好的“标准

在我得到的代码中,有许多“阴影”是‘this’的一个成员,因为代码是这样写的

class my_class {
    ..............
    int ret;

    void fun(ret){
        ..........
        this->ret = ret;
    }

}
当我将要清理所有这些警告时,我认为更容易更改函数参数,如“fun(retNew)”

但是给它起个新名字看起来一点也不好。有人有好的建议吗?我想这类事情应该有一些好的“标准”规则


谢谢

最好的方法是重命名成员或函数参数/局部变量,最好是将其重命名为更有意义的名称

你的建议听起来有些做作,但“ret”和“retNew”并不是变量命名清晰的好例子!根据它们的实际含义命名。应该可以(几乎总是)找到更好、更精确地描述成员变量、参数和局部变量的名称

虽然从语言的角度来看,行为是完全定义好的,但是拥有许多隐藏的和相似的名称会让开发人员感到困惑。任何维护代码的人都需要经历制定所有范围解析的精神痛苦,而他们应该专注于代码在做什么


[编辑]如果您确实要将某些内容传递给setter方法,例如与类成员完全相同的setter方法,那么在有问题的注释中建议的下划线前缀/后缀之类的约定是可以接受的,而且名称几乎相同的事实直观地表明您正在处理“相同的内容”“

除非您的代码库过度使用了不必要的
this
引用,否则搜索
this->
应该会发现您希望修复的大多数用法。通常,人们使用规则命名成员变量,以便能够轻松区分它们。我认为尾随下划线很常见:
this->ret\uuuz=ret或甚至只是
ret\uuu=ret