C'è tale codice:funzione friend di accesso definiti in classe
#include <iostream>
class A{
public:
friend void fun(A a){std::cout << "Im here" << std::endl;}
friend void fun2(){ std::cout << "Im here2" << std::endl; }
friend void fun3();
};
void fun3(){
std::cout << "Im here3" << std::endl;
}
int main()
{
fun(A()); // works ok
//fun2(); error: 'fun2' was not declared in this scope
//A::fun2(); error: 'fun2' is not a member of 'A'
fun3(); // works ok
}
Come accedere alla funzione fun2()?
+1: domanda ben formulata. –
Vediamo questo tipo di codice nel puntatore intelligente di boost: intrusive_ptr, che mi ha fatto prima capire quale dovrebbe essere. Per me non ha senso definirlo in questo modo, piuttosto definire un amico da qualche parte nel campo di applicazione e contrassegnare un prototipo come amico nella dichiarazione dell'ambito di classe, che è più leggibile! – Gabriel