定义类X、Y、Z,函数h(X *),满足:

定义类X、Y、Z,函数h(X *),满足:类X有私有成员i,Y的成员函数g(X *)是X的友元函数,实现对X的成员i加1;类Z是类X的友元类,其成员函数f(X *)实现对X的成员i加5;函数h(X  *)是X的友元函数,实现对X的成员i加10。在一个文件中定义和实现类,在另一个文件中实现main()函数。

代码我会写,可是如何实现“在一个文件中定义和实现类,在另一个文件中实现main()函数。”?麻烦说详细一点,谢谢!!!

class Y{

public:

void g(X *p);

};
class X{

public:
X(int _i);

int display(){return i;}
friend void Y::g(X *p);

friend class Z;

friend void h(X *p);

private:
int i;
};
class Z{

public:
void f(X *p){p->i+=5;}

};
X::X(int _i){i=_i;}

void Y::g(X *p){p->i++;}

void h(X *p){p->i+=10;}

void main(){
X x(5);Y y;Z z;

cout<<"i="<<x.display()<<endl;

y.g(&x);

cout<<"i="<<x.display()<<endl;

z.f(&x);

cout<<"i="<<x.display()<<endl;

h(&x);

cout<<"i="<<x.display()<<endl;

}

就是将你main前面的代码保存为1.cpp
在你的main里面用include 1.cpp包含前面那一半就可以了。