Тема: private
Показать сообщение отдельно
Старый 11.04.2012, 22:24   #1
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
private

Я всегда считал, что private закрывает доступ к полям для всех кроме экземпляра-владельца. Однако сейчас заметил, что данный код на GCC указывает всего на одну ошибку.
#include <conio.h>
#include <iostream>

using namespace std;

class foo{
    private:
        int bar;
    public:
        bool check(const foo &baz)const;
};

inline bool foo::check(const foo &baz)const{
    return (this->bar==baz.bar);
}

int main()
{
    foo a;
    a.bar=1;
    getch ();
    return 0;
}
Как жить? Я блуждал в темноте? По приведённому выше коду можно утверждать, что private закрывает поля лишь для других классов и функций (если только те не дружественные).
В Бьерн Страуструп Язык программирования C++. Специальное издание. Пер. с англ. — М.: Издательство Бином, 2011 г. — 1136 с: ил. формулировка, не противоречащая ни первому варианту, ни второму.
Пользователи студии отпишитесь, пожалуйста!
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием