Доступ к приватной структуре
От: Sir-G  
Дата: 05.09.12 08:28
Оценка:
Натукнулся тут на интересную штуку. Проверял на 2008 студии и онлайн компиляторах GCC.
Правомерен ли по стандарту такой доступ к приватной структуре? То, что компилируется и работает на двух основных компиляторах — это баг или фича?
Ссылка на код ideone


class X {
private:
    struct B {
        B() { y = 2012; }
        int y;
    };
    B* b;

public:
    X() { b = new B(); }
    B* GetB() { return b; }
};

int main()
{
    X x;
    // Why do we have access to X::B here?
    std::cout << x.GetB()->y;

    return 0;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.