Форум программистов, компьютерный форум CyberForum.ru

Класс friend - C++

Восстановить пароль Регистрация
 
Seroga7
 Аватар для Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
08.04.2013, 22:16     Класс friend #1
Проблемка с доступом через дружественный класс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Game {
    friend Player;           //тут объявлен класс-друг
  protected:
      string name;
     
};
 
class Player {  
  private:
      Game skills[5];
  public:
      void get_skills(){
               cout << Player.skills[0].name;      //выдает сообщение, что нет доступа
}
};
Подскажите в чем проблема
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 22:16     Класс friend
Посмотрите здесь:

Friend Function C++
friend function C++
Friend класса C++
Не работает friend C++
C++ friend классы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hellrider_
 Аватар для Hellrider_
42 / 42 / 1
Регистрация: 12.03.2013
Сообщений: 107
08.04.2013, 22:27     Класс friend #2
Вот
C++
1
2
public:
    friend class Player;
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 23:04     Класс friend #3
Цитата Сообщение от Hellrider_ Посмотреть сообщение
Вот
C++
1
2
public:
    friend class Player;
public не обязательно, просто слова class не хватало.
C++
1
cout << Player.skills[0].name;
Разве Player - объект?
Seroga7
 Аватар для Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
09.04.2013, 08:45  [ТС]     Класс friend #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Разве Player - объект?
Нет, там ошибка была, я уже ее вычислил. Нужно было так сделать:
C++
1
cout << Player::skills[0].name;
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2013, 08:58     Класс friend #5
Цитата Сообщение от Seroga7 Посмотреть сообщение
cout << Player::skills[0].name;
Разве это static-поле?
C++
1
cout<<skills[0].name;
, или, что то же самое, так как this-> подставляется неявно,
C++
1
cout<<this->skills[0].name;
.
Yandex
Объявления
09.04.2013, 08:58     Класс friend
Ответ Создать тему
Опции темы

Текущее время: 15:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru