![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]()
Доброе время суток всем,проблема такова,есть пространство имен в нем класс,в классе дружественная функция переопредения вывода в поток и приватные поля, определение класса и реализация находятся в разных файлах .hpp и .cpp соответственно,в файле реализации класса подключено пространство имен using namespace tree; и вот возникла проблема все функции класса работают и только дружественная ругается из-за попытки получить доступ к приватным полям класса,как только убираю пространство имен из .hpp файла все сразу работает,что за магия?
|
![]() |
![]() |
![]() |
#2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Хрустальный шар показывает плохо, не вижу код..
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]() Код:
Код:
bstree.hpp:13:10: error: ‘BSTree::Node* BSTree::Tree::root’ is private Node* root; ^ BSTree.cpp:222:9: error: within this context os<<tree.root->data<<endl; Последний раз редактировалось NDrago; 01.05.2018 в 21:21. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]() Код:
Код:
|
![]() |
![]() |
![]() |
#5 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Насколько я помню, using namespace влияет только на видимость используемых идентификаторов, но никак не вводит нас автоматом внутрь namespace.
Если вариант с BSTree :: operator<< по каким-либо причинам не устраивает, можно войти в требуемый namespace явно: Код:
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]()
Сработает, если правильно запишите. В хедере
Код:
Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 22.09.2017
Сообщений: 45
|
![]()
кажется я понял,спасибо большое за помощь)
|
![]() |
![]() |
![]() |
#9 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Кстати, g++ откомпилировал и без дополнительного объявления, только выдал предупреждение:
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
c++ дружественные функции | Pinguin007 | Помощь студентам | 0 | 01.10.2016 09:25 |
Дружественные функции | Alexandr- | Помощь студентам | 2 | 16.11.2013 22:36 |
Дружественные функции | midiss | Visual C++ | 0 | 20.05.2013 19:11 |
Дружественные функции | Leon S.Kennedy | Общие вопросы C/C++ | 3 | 05.12.2011 17:22 |