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

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

Войти
Регистрация
Восстановить пароль
 
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

friend class - C++

16.10.2013, 21:48. Просмотров 436. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
using namespace std;
 
#include <string>
using std::string;
 
class two;
 class one
  {
    friend class two;
  public:
    one()
    {
      name1="One";
    }
    string get2name(two& obj)
    {
      cout<<obj.getName2();//ПОЧЕМУ ИЗ ЭТОЙ ФУНКЦИИ НЕ МОГУ ВЫЗВАТЬ ИМЯ В клaссе two??
    }
 
    string getName1()
    {
      return name1;
    }
 
  private:
    string name1;
  };  
 
  class two
  {
    friend class one;
  public:
    two()
    {
      name2="two";
    }
 
 
    string getName2()
    {
      return name2;
    }
 
  private:
    string name2;
  };
 
int main()
{
  one user1;
  two user2;
 
  user1.get2name(user2);
 
  return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 21:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос friend class (C++):

Дружественные функции, реализация и вызов: Friend used outside of class - C++
Подскажите, пожалуйста, как превратить этот метод вычисления боковой поверхности в дружественную функцию: long double...

Friend template class with template class argument - C++
Помогите подружить 2 класса: Имеется класс Student: template &lt;class _T&gt; class Faculty; class Student{ friend...

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

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') - C++
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

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

Работа с class ами. Заполнение дин. массива типа class - C++
Всем доброго времени суток! Это моя первая тема на этом сайте, поэтому если что извините меня (за неточности итд итп). Мне нужно...

7
B@R_LOG
18 / 18 / 0
Регистрация: 03.07.2013
Сообщений: 49
16.10.2013, 21:58 #2
C++
1
2
3
4
5
string get2name(two & obj)
    {
      string s=obj.getName2();//ПОЧЕМУ ИЗ ЭТОЙ ФУНКЦИИ НЕ МОГУ ВЫЗВАТЬ ИМЯ В клaссе two??
      return s;
    }
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
16.10.2013, 22:01  [ТС] #3
ошибка: use of undefined type 'two'!!
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2013, 22:02 #4
two перед one поместите. В данном случае, просто class two - недостаточно.
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2013, 22:06 #5
forward declaration недостаточно, чтобы вызывать методы у класса two.
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
16.10.2013, 22:08  [ТС] #6
Цитата Сообщение от alsav22 Посмотреть сообщение
two перед one поместите. В данном случае, просто class two - недостаточно.
я хочу чтобы из one можно было вызывать имя two
и из two вызывать имя one

то есть если я поменяю местами получится тоже только с другим классом.

Добавлено через 31 секунду
Цитата Сообщение от I.M. Посмотреть сообщение
forward declaration недостаточно, чтобы вызывать методы у класса two.
что же делать?
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.10.2013, 22:14 #7
Цитата Сообщение от slipp1 Посмотреть сообщение
что же делать?
Как обычно делают. Разделить реализации и объявления по файлам.
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
16.10.2013, 22:47  [ТС] #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Как обычно делают. Разделить реализации и объявления по файлам.
гениально....
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 22:47
Привет! Вот еще темы с ответами:

Нужно объект типа класс проинициализировать с помощью перегруженного конструктора Class::Class( bool a ) - C++
Плиз помогите. Не знал, что я такой чайник.) Итак: есть два класса: CMyClass.h CMyClass.cpp и

Create a programm that creates an object of created class Time and tests the member functions of class - C++
Time Class Create a class called Time that might be used to represent time. 1. Your class should include three data...

enum и class как составляющие другого class - C++
Как организовать ввод enuma с клавиатуры (51-я строка)? Как прикрепить класс date к employee в private? :wall: #include &lt;iostream&gt; ...

vector<[class]> in class и перегрузка (ostream) - C++
Доброе всем время суток ) столкнулся с проблемой Есть у меня несколько классов и есть класс внутри которого созданы векторы хранящие...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
16.10.2013, 22:47
Ответ Создать тему
Опции темы

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