//--《C++捷径教程》读书笔记--Chapter 11--类(完结)
//--Chapter 11--类
//--03/28/2006 Tues.
//--Computer Lab
//--Liwei
//--程序#7 use struct to create class
#include <iostream>
using namespace std;
struct c1{
int get_i();
void put_i(int j);
private:
int i;
};
int c1::get_i()
{
return i;
}
void c1::put_i(int j)
{
i=j;
}
int main()
{
c1 s;
s.put_i(10);
cout<<s.get_i()<<'/n';
return 0;
}
//--程序#8 use struct to create class(this use class)
#include <iostream>
using namespace std;
class c1{
int i;
public:
int get_i();
void put_i(int j);
};
int c1::get_i()
{
return i;
}
void c1::put_i(int j)
{
i=j;
}
int main()
{
c1 s;
s.put_i(10);
cout<<s.get_i()<<'/n';
return 0;
}
//--程序#9 use union to create class
#include <iostream>
using namespace std;
union u_type{
u_type(short int a);
void showchars();
short int i;
char ch[2];
};
u_type::u_type(short int a)
{
i=a;
}
void u_type::showchars()
{
cout<<ch[0]<<" "<<ch[1]<<'/n';
}
int main()
{
u_type u(22252);
u.showchars();
return 0;
}
//--程序#10 use inline
#include <iostream>
using namespace std;
class c1{
int i;
public:
int get_i();
void put_i(int j);
};
inline int c1::get_i()
{
return i;
}
inline void c1::put_i(int j)
{
i=j;
}
int main()
{
c1 s;
s.put_i(10);
cout<<s.get_i();
return 0;
}
//--程序#11 use inline
#include <iostream>
using namespace std;
class c1{
int i;
public:
int get_i(){ return i;};
void put_i(int j){ i=j; };
};
int main()
{
c1 s;
s.put_i(10);
cout<<s.get_i();
return 0;
}
//--程序#12 use object array
#include <iostream>
using namespace std;
enum resolution{low,medium,high};
class display{
int width;
int height;
resolution res;
public:
void set_dim(int w, int h){ width=w; height=h;};
void get_dim(int &w,int &h){ w=width; h=height;};
void set_res(resolution r){ res=r;}
resolution get_res(){ return res;}
};
char names[3][7]={
"low",
"medium",
"high",
};
int main()
{
display display_mode[3];
int i,w,h;
display_mode[0].set_res(low);
display_mode[0].set_dim(640,480);
display_mode[1].set_res(medium);
display_mode[1].set_dim(800,600);
display_mode[2].set_res(high);
display_mode[2].set_dim(1600,1200);
cout<<"Available display modes:/n/n";
for(i=0; i<3; i++)
{
cout<<names[display_mode[i].get_res()]<<": ";
display_mode[i].get_dim(w,h);
cout<<w<<" by "<<h<<'/n';
}
return 0;
}
//--程序#13 use object array
#include <iostream>
using namespace std;
class samp{
int a;
public:
samp(int n) { a=n; }
int get_a() { return a; }
};
int main()
{
samp samparray[4]={-1, -2, -3, -4};
int i;
for(i=0; i<4; i++)
cout<<samparray[i].get_a();
cout<<'/n';
return 0;
}
//--程序#14 use object array
#include <iostream>
using namespace std;
class samp{
int a,b;
public:
samp(int n, int m) { a=n; b=m; }
int get_a() { return a; }
int get_b() { return b; }
};
int main()
{
samp samparray[4]={samp(1,2), samp(3,4), samp(5,6), samp(7,8)};
int i;
for(i=0; i<4; i++)
cout<<samparray[i].get_a()<<' '<<samparray[i].get_b()<<'/n';
cout<<'/n'<<'/n';;
return 0;
}
//--程序#15 use object point
#include <iostream>
using namespace std;
class p_example{
int num;
public:
void set_num(int val) {num=val;}
void show_num();
};
void p_example::show_num()
{
cout<<num<<'/n';
}
int main()
{
p_example ob,*p;
ob.set_num(1);
ob.show_num();
p=&ob;
p->show_num();
return 0;
}
//--程序#16 use object point
#include <iostream>
using namespace std;
class p_example{
int num;
public:
void set_num(int val) {num=val;}
void show_num();
};
void p_example::show_num()
{
cout<<num<<'/n';
}
int main()
{
p_example ob[2],*p;
ob[0].set_num(10);
ob[1].set_num(20);
p=&ob[0];
p->show_num();
p++;
p->show_num();
p--;
p->show_num();
return 0;
}