38、#include
int n; public:
Sample(int i){n=i;}
friend int add(Sample &s1,Sample &s2); };
int add(Sample &s1,Sample &s2) {
return s1.n+s2.n; }
void main() {
Sample s1(10),s2(20); cout< 39、#include int x,y; public: Sample(){x=y=0;} Sample(int a,int b){x=a;y=b;} ~Sample() { if(x==y) cout<<\else cout<<\} void disp() { cout<<\} }; void main() { Sample s1(2,3); s1.disp(); } 六、分别指出下面的p各是什么。 1、int *p; 2、int *p[3]; 3、int (*p)[3]; 4、int *p( ); 5、int **p; 七、指出下列程序的错误,并说明为什么: 1、#include class Student{ int sno; int age; void printStu(); void setSno(int d); }; void printStu() { cout<<\\ cout<<\} void setSno(int s) { sno=s; } void setAge(int a) { age=a; } void main() { Student lin; lin.setSno(20021); lin.setAge(20); lin.printStu(); } 2、 #include 13 int x,y; private: Point(){x=1;y=2;} }; void main() { Point cpoint; cpoint.x=2; } 3、#include void main( ) { int x=0,y=5,z=3; while(z>0 && ++x<3) y=y-1; cout< } 4、#include void main() { int x=10; int &y=x; cout<<\x++; cout<<\y++; cout<<\} 5、#include void main( ) { int i,n=0; for(i=2;i<10;i++) { if(i%3!=0) continue; n++; } cout< 6、#include int *a; public: A(int x) { a=new int(x); cout<<\ } }; void main() { A x(3),*p; p=new A(5); delete p; } 7、# include class base { public: virtual int func () { return 0; }};class derived: public base { public:int func() { return 100; } 14 }; void main() { derived d; base& b = d; cout << b.func() << endl; cout << b.base::func() << endl; } 8、#include 二、简答题 1、类的公有成员和私有成员有何区别? 2、引入类的静态成员有何意义? 3、什么是多态性?它能带来什么样的好处? 4、运算符重载能带来什么好处? const float r=3.2; void main() { float s1,s2,c1,c2,r1; c1=pi*r*r; s1=2*pi*r; r=2.8; c2=pi*r*r; s2=2*pi*r; cout 5、怎样理解类与对象的含义?类与对象的关系是什么? 6、为什么要在基类中定义虚函数? 7、引入友元的目的是什么? 8、什么是运算符重载?是否所有运算符都能进行重载? 9、析构函数有什么作用? 15 10、拷贝构造函数在哪几种情况下调用? 11、函数重载与函数覆盖有什么不同,它们与多态有什么关系? 12、C++继承是如何工作的? 三、编程题: 1. 编写一个函数,实现两个数的交换。 2. 编写一个函数,返回三个整数形参中的最小值。 3. 编写一个类LEI,实现打印私有变量a的值。 4、下面的函数统计子字符串substr在字符串str中出现的次数,如果substr在str中不出现,则返回值0。请完成该函数。 int str_count(char *substr, char *str) { } 5、定义个datetime类,使其对象可以显示当前系统时间和日期 。 6、设计一个汽车类Vehicle,包含数据成员车轮数和车重,由它派生出类Car和类Truck,前者包含载客数,后者包含载重量。编写程序实现。 7、设计一个点类Point,包含点的坐标x,y 两个数据成员,采用友元类的方式分别计算两点间的水平距离和垂直距离。 8、设计一个点类Point,包含横、纵两个坐标数据x,y,由它派生出圆类Circle,并添加一个半径数据r,求其面积area。 9、设计一个点类Point,包含两个坐标数据成员x,y和一个构造函数;再设计一个友元函数distance()用于求两点之间的距离。 10、编写一个函数,返回三个整数形参中的最大值。 11、编写一个函数,实现两个数的交换。 12、编写class cA的派生类class cAB,增加成员函数,用于求圆的周长 class cA { int r; public: cA(int x){ r=x; } double area( ) { return r*r*3.14; } 16