c++练习

来源:互联网 发布:烧录软件 英文 编辑:程序博客网 时间:2024/05/16 14:13

定义类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()函数。

//文件1  df513.h

Code:
  1. class X;//前向引用类   
  2.   
  3. class Y   
  4. {   
  5. public:   
  6.     void g(X*);   
  7. };   
  8.   
  9. class X   
  10. {   
  11. private:   
  12.     int i;   
  13. public:   
  14.     X(){i=0;}   
  15.     friend void h(X*);   
  16.     friend void Y::g(X*);   
  17.     friend class Z;   
  18. };   
  19.   
  20.   
  21.   
  22. class Z   
  23. {   
  24. public:   
  25.     void f(X*);   
  26. };   
  27.   
  28.   
  29. void Y::g(X*x)   
  30. {   
  31.     x->i++;   
  32.     cout<<"i="<<x->i<<endl;   
  33. }   
  34.   
  35. void Z::f(X*x)   
  36. {   
  37.     x->i+=5;   
  38.     cout<<"i="<<x->i<<endl;   
  39. }   
  40.   
  41. void h(X*x)   
  42. {   
  43.     x->i+=10;   
  44.     cout<<"i="<<x->i<<endl;   
  45. }  

//文件2  513.cpp

Code:
  1. #include<iostream>   
  2. using namespace std;   
  3. #include"df513.h"   
  4.   
  5. void main()   
  6. {   
  7.     X x;   
  8.     Y y;   
  9.     Z z;   
  10.   
  11.     h(&x);   
  12.     y.g(&x);   
  13.     z.f(&x);   
  14. }