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

friend функция в пространстве имен - C++

Восстановить пароль Регистрация
 
insideone
Модератор
Автор FAQ
 Аватар для insideone
3623 / 901 / 48
Регистрация: 10.01.2010
Сообщений: 2,429
18.02.2010, 00:28     friend функция в пространстве имен #1
C++
1
2
3
4
class Particle{
    friend bool FileManager::Particles(const char* FileName, void* Target);
/* etc */
}
Ругается что "error C2039: Particles: не является членом "FileManager""

Объявление
C++
1
namespace FileManager;
Неверно... ибо
error C2059: синтаксическая ошибка: ;
Неужели нельзя чтобы функция была дружественной если она в пространстве имен?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2010, 00:28     friend функция в пространстве имен
Посмотрите здесь:

C++ friend функция С++ на MSVC 6.0
Friend Function C++
friend function C++
Класс friend C++
C++ friend классы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
18.02.2010, 17:39     friend функция в пространстве имен #2
Почему же, можно. К примеру, вот такой код нормально компилируется:
C++
1
2
3
4
5
6
7
8
9
10
11
12
namespace myspace
{
    void func(int a)
    {
        cout << a << endl;
    }
};
 
class myclass
{
    friend void myspace::func(int a);
};

Цитата Сообщение от insideone Посмотреть сообщение
Неверно... ибо
Цитата
:error C2059: синтаксическая ошибка: ;
Может где ";" лишняя?
insideone
Модератор
Автор FAQ
 Аватар для insideone
3623 / 901 / 48
Регистрация: 10.01.2010
Сообщений: 2,429
18.02.2010, 18:05  [ТС]     friend функция в пространстве имен #3
Цитата Сообщение от Nameless One Посмотреть сообщение
Почему же, можно. К примеру, вот такой код нормально компилируется:
а так чтобы namespace потом подключался уже после описания класса?
Может где ";" лишняя?
да нет, наверное нельзя namespace объявлять...
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,898
Завершенные тесты: 1
18.02.2010, 18:35     friend функция в пространстве имен #4
C++
1
2
3
4
5
6
namespace FileManager { bool Particles(const char* FileName, void* Target); }
 
class Particle{
        friend bool FileManager::Particles(const char* FileName, void* Target);
/* etc */
}
insideone
Модератор
Автор FAQ
 Аватар для insideone
3623 / 901 / 48
Регистрация: 10.01.2010
Сообщений: 2,429
18.02.2010, 18:44  [ТС]     friend функция в пространстве имен #5
Спасибо, оказывается все просто...
Yandex
Объявления
18.02.2010, 18:44     friend функция в пространстве имен
Ответ Создать тему
Опции темы

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