2012-10-18 6 views
2

Bonjour, J'essaie d'accéder à une fonction de membre privé est Gtest. Le code ressemble quelque peu à ceci. Alors, comment puis-je accéder à static void Pri_fun?Comment appeler une fonction privée via une fonction ami?

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

Répondre

3

Comme il est une fonction statique, vous devez accéder via le nom de classe:

abc::Pri_fun(); 

Vous devriez faire une fonction de l'appelant si, ou l'appeler de la classe ami constructeur:

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

ou

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