我认为这是可能的,但编译器抱怨它无法访问我班级的受保护/私人成员。我试过移动东西并改变签名,但找不到有效的组合。
我基本上有:
class MyClass
{
public:
friend int main(int argc, char** argv);
private:
void test()
{
cout << "My friend has accessed my member" << endl;
}
};
int main(int argc, char** argv)
{
MyClass mc;
mc.test();
}
答案 0 :(得分:2)
你拥有的是正确的。
答案 1 :(得分:2)
你可能不应该做你想做的事情 - 肯定有更好的方法。话虽这么说,你可以尝试在全局命名空间friend int ::main
中声明友元函数(注意使用范围解析运算符::
)。