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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
#1

Класс friend - C++

08.04.2013, 22:16. Просмотров 410. Ответов 4
Метки нет (Все метки)

Проблемка с доступом через дружественный класс:

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;      //выдает сообщение, что нет доступа
}
};
Подскажите в чем проблема
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 22:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс friend (C++):

класс Friend - C++
Подскажите в каких случаях лучше использовать класс friend? Известно что класс friend нарушает принцип инкапсуляции, так почему же мы его...

Friend - класс шаблон - C++
Подскажите, пожалуйста, почему Visual C++ 2010 Express нормально компилирует код template &lt;class NODETYPE&gt; class QueueNode { ...

Перегрузка операторов, friend или нет friend? - C++
Всем здравствуйте. Есть такой вопрос: при перегрузке операторов в классе(пусть будут + и = (вообще неважно, за исключением потока)) как и...

Friend для friend - C++
всем доброго времени суток, покажу проблему на примере: Class B; class A{ int F; friend B; public: A(){F=0;}; };

Friend-функции - C++
из теории ясно, что friend функция — это функция, которая не является членом класса, но имеет доступ к членам класса, объявленным в полях...

friend class - C++
#include &lt;iostream&gt; using namespace std; #include &lt;string&gt; using std::string; class two; class one { friend...

4
Hellrider_
50 / 50 / 2
Регистрация: 12.03.2013
Сообщений: 171
08.04.2013, 22:27 #2
Вот
C++
1
2
public:
    friend class Player;
1
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 23:04 #3
Цитата Сообщение от Hellrider_ Посмотреть сообщение
Вот
C++
1
2
public:
    friend class Player;
public не обязательно, просто слова class не хватало.
C++
1
cout << Player.skills[0].name;
Разве Player - объект?
0
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
09.04.2013, 08:45  [ТС] #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Разве Player - объект?
Нет, там ошибка была, я уже ее вычислил. Нужно было так сделать:
C++
1
cout << Player::skills[0].name;
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.04.2013, 08:58 #5
Цитата Сообщение от Seroga7 Посмотреть сообщение
cout << Player::skills[0].name;
Разве это static-поле?
C++
1
cout<<skills[0].name;
, или, что то же самое, так как this-> подставляется неявно,
C++
1
cout<<this->skills[0].name;
.
0
09.04.2013, 08:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 08:58
Привет! Вот еще темы с ответами:

Не работает friend - C++
#ifndef INTEGERLONGS_HPP_INCLUDED #define INTEGERLONGS_HPP_INCLUDED...

friend function - C++
После добавления дружественной ф-ции sum( а она для сложения salary у человека, которого я выберу) класс перестал работать. Что у меня не...

friend классы - C++
Доброго времени суток форумчани. Вот потихоньку учу C++, добрался до дружественных функций и классов. Вроде бы все ясно, но все равно не...

Friend Function - C++
Я не очень понимаю как пользаватса Friend функцыей Class.h #include &lt;stdio.h&gt; #include &quot;iostream&quot; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru