2012-10-18 84 views
2

你好,我想访问一个私人会员功能是Gtest。代码看起来有点类似于这个。那么,我怎样才能访问static void Pri_fun如何通过朋友功能调用私人功能?

using namespace std; 
class test{ 

}; 
class abc{ 
public: 
    friend class test; 
private: 
    static void Pri_fun() 
     { 
     cout << "private fun called \n"; 
     } 
}; 
int main() 
{ 
    abc ab; 
    test *abd; 
    abd->Pri_fun(); 
} 

回答

3

因为它是一个静态函数,你应该通过类名称来访问它:

abc::Pri_fun(); 

你应该做一个调用函数虽然,或从朋友类的构造函数调用它:

class test{ 
public: 
    void foo() 
    { 
     abc::Pri_fun(); 
    } 
}; 

class test{ 
public: 
    test() 
    { 
     abc::Pri_fun(); 
    } 
};