下面的代码编译错误,提示 class2 未定义 #include<iostream>
using namespace std;class class2;class class1{
int i;
public:
void set(int x){i=x;}
void outi(class2& y){cout<<y.j<<endl;} // 提示错误处
};
class class2{
static int j;
public:
friend void class1::outi(class2& y);
};
//------------------------------------------------------
void main(){
class1 c1;
c1.set(4);
class2 c2;
}
using namespace std;class class2;class class1{
int i;
public:
void set(int x){i=x;}
void outi(class2& y){cout<<y.j<<endl;} // 提示错误处
};
class class2{
static int j;
public:
friend void class1::outi(class2& y);
};
//------------------------------------------------------
void main(){
class1 c1;
c1.set(4);
class2 c2;
}
static int j;
public:
friend void class1::outi(class2& y);
};
class class1{
int i;
public:
void set(int x){i=x;}
void outi(class2& y){cout<<y.j<<endl;} //
};
这样
using namespace std;class class2{
static int j;
public:
friend class class1;
};
class class1{
int i;
public:
void set(int x){i=x;}
void outi(class2& y){cout<<y.j<<endl;} // 提示错误处
};//------------------------------------------------------
void main(){
class1 c1;
c1.set(4);
class2 c2;
}
//////////////////////
class class2;
这样肯定是不行的
using namespace std;class class2;class class1{
int i;
public:
void set(int x){i=x;}
void outi(class2& y);
};
class class2{
int j;
public:
friend void class1::outi(class2& y);
};
void class1::outi(class2& y){cout<<y.j<<endl;};
//------------------------------------------------------
void main(){
class1 c1;
c1.set(4);
class2 c2;
c1.outi(c2);
}