gpt4 book ai didi

c++ - 我如何在图书馆内让 main 成为我类(class)的 friend ?

转载 作者:可可西里 更新时间:2023-11-01 16:35:51 26 4
gpt4 key购买 nike

请参阅my first attempt at answering this.我之前为了简化事情而忽略了讲述整个故事。事实证明我的例子有效!对不起。

整个故事是,这是一个库,在一个文件中包含一个类,在另一个文件中包含主要内容,所有这些都链接到我的库中。该库为流程框架提供了基础,这就是为什么 main 在库中而不是流程中。

下面是我所拥有的精简版。

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();
}

请注意,这在编译库时失败

我试过的是:

  • 让 friend 到处都是
  • 使 friend 引用 main 使用全局范围(例如::main)
  • 让 friend 和 main 声明使用全局作用域

我错过了什么?

谢谢!

最佳答案

只需在 MyNamespace 外声明 main 并在 friend 语句中指定全局命名空间 ::

//in header file of ProcessManager
//your pf.h

int main(int argc, char** argv);

namespace MyNamespace
{
class ProcessManager
{
public:
friend int ::main(int argc, char** argv);
private:
void test();
};
};

关于c++ - 我如何在图书馆内让 main 成为我类(class)的 friend ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com