Как мне сделать главного друга моего класса из библиотеки?
Посмотри пожалуйстамоя первая попытка ответить на это , Я забыл рассказать всю историю раньше, пытаясь упростить вещи. Оказывается, мой пример работает! Сожалею.
Вся история в том, что это библиотека, которая содержит класс в одном файле и основной файл в другом файле, и все они связаны с моей библиотекой. Библиотека обеспечивает основу для Process Framework, поэтому основная часть находится в библиотеке, а не в процессе.
Ниже приведена урезанная версия того, что у меня есть.
pf.hpp
using namespace std;
namespace MyNamespace
{
class ProcessManager
{
public:
friend int main(int argc, char** argv);
private:
void test();
};
};
pf.cpp
#include "pf.h"
namespace MyNamespace
{
ProcessManager::test()
{
cout << "My friend has accessed my member" << endl;
}
};
pfmain.cpp
#include "pf.hpp"
int main(int argc, char** argv)
{
ProcessManager pm;
pm.test();
}
Обратите внимание, что это не удается при компиляции библиотеки
Что я пробовал это:
Перемещение друга повсюдуСоздание ссылки на друга на глобальную область действия main (например, :: main)Создание друзей и основных объявлений использует глобальную область видимостиЧто мне не хватает?
Спасибо!