我如何让主要成为我班级的朋友?

时间:2011-12-23 17:51:54

标签: c++ main friend

我认为这是可能的,但编译器抱怨它无法访问我班级的受保护/私人成员。我试过移动东西并改变签名,但找不到有效的组合。

我基本上有:

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

2 个答案:

答案 0 :(得分:2)

你拥有的是正确的。

Works in GCC 4.3.4

答案 1 :(得分:2)

你可能不应该做你想做的事情 - 肯定有更好的方法。话虽这么说,你可以尝试在全局命名空间friend int ::main中声明友元函数(注意使用范围解析运算符::)。