int g() {
cout << "In function g()" << endl;
return 0;
}
class X {
public:
static int g() {
cout << "In static member function X::g()" << endl;
return 1;
}
};
class Y: public X {
public:
static int i;
};
int Y::i = g();
изначально я думал, что разрешение символа происходит из внутренней области во внешнюю область видимости, поэтому будет вызываться x :: g ().
но затем я внимательно заметил код
int Y::i = g();
, как мы можем получить доступ к X :: g () без области видимости имен?
И область, в которой находится этот оператор, должна быть глобальной, а не Y :: или X ::, поэтому разрешение символа должно давать глобальную версию функции g ()?