вопрос по опции Friend

Тема в разделе "Общие вопросы по С и С++", создана пользователем NCHNCHNCH, 7 янв 2008.

Статус темы:
Закрыта.
  1. NCHNCHNCH

    NCHNCHNCH Гость

    Всем привет. не получается сослаться на приватный элемент класса из функции другого класса. причем данную функцию делаю другом.

    Код (Text):
    class d
    {
    public :
    int t;
    int r;
    int ttt( int );

    friend void i:: qqq(d &q); // объявил функцию другом
    private :
    int e;
    };

    class i
    {
    public :
    int rrr;
    int www;
    void qqq (d &f) // сама функция
    {
    f.r=7;
    f.e=10;
    }
    };

    void main()
    {
    d f;
    f.t=5;
    www(f);
    }
    система выдает ошибки .... чего только не пробовал. если объявить функцию которая сама по себе не в классе i то проблем нет. а так не выходит.

    подскажите плиз или скажите где искать ответ.

    заранее спасибо

    влад.
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Сложно разобраться в твоем потоке мыслей, так что вот пример тестового приложения:
    Код (Text):
    #include <iostream>

    class SomeClass;

    class FriendClass
    {
    public:
    void PrintWithChanging( SomeClass& Some );
    };

    class SomeClass
    {
    public:
    SomeClass() : PrivateMember( 0 ) {};

    void Print() const
    {
    std::cout << "SomeClass: " << PrivateMember << std::endl;
    };

    private:
    int PrivateMember;

    friend void FriendClass::PrintWithChanging( SomeClass& Some );
    };

    void FriendClass::PrintWithChanging( SomeClass& Some )
    {
    Some.PrivateMember = 5;
    std::cout << "FriendClass: " << Some.PrivateMember << std::endl;
    }

    int main()
    {
    SomeClass Some;
    Some.Print();

    FriendClass Friend;
    Friend.PrintWithChanging( Some );

    std::cout << "After changing - ";
    Some.Print();

    return 0;
    }
     
  3. NCHNCHNCH

    NCHNCHNCH Гость

    Спасиобо большое !!! работает !!!!! разобрался
     
Загрузка...
Похожие Темы - вопрос по опции
  1. ApplePen
    Ответов:
    0
    Просмотров:
    78
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    94
  3. kartaman
    Ответов:
    0
    Просмотров:
    128
  4. Peter
    Ответов:
    4
    Просмотров:
    524
  5. di0d_
    Ответов:
    1
    Просмотров:
    441
Статус темы:
Закрыта.

Поделиться этой страницей