在C++中,shadowed變量名稱的作用域分辨率(「優先順序」)是多少?我似乎無法在網上找到簡明的答案。在C++中,陰影變量名稱的作用域分辨率(「優先順序」)是什麼?
例如:
#include <iostream>
int shadowed = 1;
struct Foo
{
Foo() : shadowed(2) {}
void bar(int shadowed = 3)
{
std::cout << shadowed << std::endl;
// What does this output?
{
int shadowed = 4;
std::cout << shadowed << std::endl;
// What does this output?
}
}
int shadowed;
};
int main()
{
Foo().bar();
}
我想不出任何其他範圍內,其中一個變量可能會發生衝突的。如果我錯過了一個,請告訴我。
在bar
成員函數中,所有四個shadow
變量的優先順序是什麼?
你可以在'bar()'裏面有一個聲明'shadowed'的代碼塊。 – 2010-05-10 17:34:09
「範圍分辨率」 – 2010-05-10 17:35:43
添加了bar()內的代碼塊的情況。 – 2010-05-10 17:37:26