我知道你可以在C ++中重用变量名,但我想知道我是否应该这样做。我不是在谈论重用变量本身,就像全局变量一样。我在谈论在一个范围内声明和使用具有特定名称的变量,然后在不同的范围内声明并使用具有相同名称的另一个变量。例如:
void Func1(int b) { /* Code here. */ };
void Func2(int b) { /* Different code here. */ };
void main()
{
{
int a=1;
// Do stuff with this variable.
}
{
int a=5;
// Do different stuff with this variable.
}
int b=10:
Func1(b);
Func2(b);
}
这样做似乎允许更短的变量名称并允许复制和粘贴代码而无需更改变量名称,但它可能会导致混淆。关于何时这样做是否有风格指南或普遍接受的做法?
我搜索了一个类似的问题,我找不到任何东西。我找到了一些关于全局变量的东西,但那不是我想要的。
答案 0 :(得分:1)
你当然可以这样做,因为它们处于不同的范围。
如果希望变量有助于解释周围代码的语义,则应使用适当命名的变量。
如果给定的变量仅用于计数或类似,那么使用像' i'这样的通用名称。或者' j'在所有情况下,它都是公认的做法。
答案 1 :(得分:1)
较短变量名称的所谓利益可能是有意义的,但更令人感兴趣的是较短的变量范围。通常,变量的范围越小越好。因此,在小范围内声明变量是一种很好的做法,纯粹为此目的引入裸露范围也是一种很好的做法。
一旦我们解决了这个问题,那么我们就会讨论在不同的范围内重用变量名是否可行。
我想说选择变量名最重要的是:
应该选择变量的名称,以便最好地描述变量的值。
任何其他问题都是次要问题。这意味着范围内变量的最佳名称不能以任何方式取决于其他范围中存在的变量。
这反过来意味着:在范围内重用变量名称,完全没问题。
答案 2 :(得分:0)
您应该阅读有关Variable Scope in C++的更多信息。
您可以重复使用范围之外的变量。
编程中有一些命名约定,google自己。 This is a hit I got from it。命名约定因语言,公司与公司等不同而不同。但大多数都具有共同的功能,例如命名变量具有含义。
请记住,这些命名约定可以让我们的生活更轻松。使用命名约定将有助于理解您的代码(或某天的未来)。
它始终是您选择的选项,简单方式或(相对)正确的方式。