64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
class A
{
public:
friend void f() {};
};
int main()
{
f();
system( "pause" );
return 0;
}
#include <iostream>
class A
{
public:
friend void f( int a ){ }
operator int( ){ return a; }
private:
int a;
};
int main( void )
{
A a;
f( a );
return 0;
}
#include <iostream>
class A
{
public:
friend void f(const A & a) {}
};
int main()
{
A a;
f(a);
system( "pause" );
return 0;
}
#include <iostream>
using namespace std;
// void f(void) {
//
// cout << "in global" << endl;
class A {
private:
int m_a;
public:
A(int n):m_a(n){}
friend ostream& operator<<(ostream& os,const A& a) {
return os<<a.m_a;
}
friend void f(const A& a) {
cout << "in class" << endl;
}
friend void f(void) {
cout << "in class void" << endl;
}
};
int main(void) {
A a(3);
cout << a << endl;
f();//编译错误
f(a);//正常运行,为什么啊?,顺便说一下,VC里面f()也能通过编译.
return 0;
}