不要编写太复杂的复合表达式

不要编写太复杂的复合表达式。

例如: i = a >= b && c < d && c + f <= g + h ; // 复合表达式过于复杂

 

 1 #include <iostream>
 2 
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 //Y类的不完全定义
 6 class Y;
 7 
 8 //X类的定义    
 9 class X {   
10 public:
11     void disp(Y py,char *name);   //成员函数原型
12 };
13 
14 //定义Y类
15 class Y {  
16     //声明本类的友元函数
17     //X类的disp()为本例的友元函数
18     friend void X::disp(Y py,char *name);
19      //普通函数putY() 为本例的友元函数
20     friend void putY(Y& yc,char *name);         
21 private: //私有成员
22     int num;
23     dispY(char *name){    
24         cout<<name<<".num="<<num<<endl;
25     }
26 public: //公共成员函数
27     Y(int n){  
28        num=n;
29     }
30 };
31 
32 //X类成员函数的实现部分
33 void X::disp(Y py,char *name){
34     cout<<"In X::disp():"<<endl;
35     py.dispY(name);   //访问Y类的私有函数
36 }
37 
38 //普通函数putY()的定义
39 void putY(Y& yc,char *name){
40     cout<<"In getY:"<<endl;
41     yc.dispY(name);
42     cout<<name<<".num=";
43     cout<<yc.num<<endl;
44 }
45 
46 //在main()函数测试X和Y类的功能
47 
48 int main(int argc, char** argv) {
49         //创建Y和X类的对象
50     Y y1(100),y2(200);
51     X x;
52 
53     //不可用Y类对象的私有成员函数显示
54     //y1.dispY("y1");
55     //y2.dispY("y2");
56 
57     //调用X类对象的友元函数显示
58     x.disp(y1,"y1");
59     x.disp(y2,"y2");
60 
61     //用getY函数显示Y类的对象显示
62     putY(y1,"y1");
63     putY(y2,"y2");
64     return 0;
65 }

 

posted @ 2018-08-03 12:27  borter  阅读(153)  评论(0编辑  收藏  举报