1、构造函数21 创建一个Employ类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。该类中构造函数初始化每个成员,display()函数打印数据成员。class Employeepublic: Employee(char* n,char* a,char* c,char* s,char* z); void Display();protected: char name20; char addr40; char city20; char state20; char zip10;Employee:Employee(char* n,char* a, char* c, char* s, char
2、* z) strncpy(name,n,20); name19=0; strncpy(addr,a,40); addr39=0; strncpy(city,c,20); city19=0; strncpy(state,s,20); state19=0; strncpy(zip,z,10); zip9=0;void Employee:Display() cout name endl addr city endl state zip endl; void main() Employ em(Mark Brooks,5 West St.,Revere,CA,12290); em.Display();e
3、m.Display();2一圆型游泳池如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。#include using namespace std;const float PI = 3.14159;#define PI 3.1415926const float FencePrice = 35;const float ConcretePrice = 20;class Circle /声明类Circle 及其数据和方法 private: float radius; pub
4、lic: Circle(float r); /构造函数 float Circumference(); /圆周长 float Area() ; /圆面积;Circle:Circle(float r) /构造函数初始化数据成员radiusradius=r; float Circle:Circumference() / 计算圆的周长 return 2 * PI * radius; float Circle:Area() /计算圆的面积 return PI * radius * radius;void main () float radius; float FenceCost, ConcreteCos
5、t; coutradius; Circle Pool(radius); /声明 Circle 对象 Circle PoolRim(radius + 3); FenceCost = PoolRim.Circumference() * FencePrice; /计算栅栏造价并输出 cout Fencing Cost is ¥ FenceCost endl; ConcreteCost = (PoolRim.Area() -Pool.Area()*ConcretePrice; /计算过道造价并输出 cout Concrete Cost is ¥ ConcreteCost endl;1选择题(1)对类的
6、构造函数和析构函数描述正确的是()。A.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载(2)类的析构函数的作用是( )。A.一般成员函数 B.类的初始化 C.对象初始化 D.删除对象(3)假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为( )。A.OneClass(OneClass p); B. OneClass& (OneClass p);C. OneClass(OneClass & p); D. OneClass (OneClass *p);(4)下列不是描述类的成
7、员函数的是()A. 构造函数 B. 析构函数 C. 友元函数D. 拷贝构造函数(5)构造函数不具备的特征的是()A. 构造函数的函数名与类名相同B. 构造函数可以重载C. 构造函数可以设置默认参数D. 构造函数必须指定类型说明(6)通常,拷贝构造函数的参数是() A. 某个对象名 B. 某个对象的成员名 C. 某个对象的引用名 D. 某个对象的指针名(7) 类的析构函数的作用是() A. 一般成员函数 B. 类的初始化 C. 对象的初始化 D. 删除对象创建的所有对象(8) 类的析构函数是在()调用的。 A. 类创建时 B.创建对象时 C. 删除对象时 D. 不自动调用(9)下面( )项是对构
8、造函数和析构函数的正确定义。Avoid X:X(), void X:X()BX:X(参数), X:X()CX:X(参数), X:X(参数)Dvoid X:X(参数), void X:X(参数)(10)( )的功能是对象进行初始化。 A析构函数 B. 数据成员 C.构造函数 D.静态成员函数(11)拷贝构造函数具有的下列特点中,( )是错误的。A如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B拷贝构造函数只有一个参数,并且是该类对象的引用C拷贝构造函数是一种成员函数D拷贝构造函数的名字不能用类名二 读程序#includeclass Datepublic:Date(int,int,i
9、nt);Date(int,int);Date(int);Date( );Date( )cout“调用析构函数”endl;void display( );private:int month;int day;int year;DateDate(int m,int d,int y) month=m;day=d;year=y; DateDate(int m,int d)year=2005; month=m;day=d; DateDate(int m)day=1;year=2005;month=m;DateDate( )month=1;day=1;year=2005;void Datedisplay(
10、)coutmonth/day/yearendl;int main( )Date d1(10,13,2005);Date d2(12,30);Date d3(10);Date d4;d1.display( );d2.display( );d3.display( );d4.display( );return 0;3:下列程序的运行结果是 。#include void max(Student*);using namespace std;class Student public: Student(int n,float s):num(n),score(s) int num; float score;
11、;void main()Student stud5= Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5);Student *p=&stud0; max(p); void max(Student *arr)float max_score=arr0.score; int k=0; for(int i=1;imax_score) max_score=arri.score;k=i; coutarrk.num max_scoreendl;5#include class Tp
12、oint public: Tpoint(int xp,int yp) x=xp; y=yp; Tpoint(Tpoint& p); int xcoord() return x; int ycoord() return y; private: int x,y;Tpoint:Tpoint(Tpoint& p) x=p.x; y=p.y; cout“Copy_initialization constructor called.n”;void main() Tpoint p1(5,7); Tpoint p2(p1); cout“p2=”p2.xcoord()“,”p2.ycoord()endl;结果:
13、改错.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。#includeclass one int a1,a2; public:one(int x1=0, x2=0);void main()one data(2,3); coutdata.a1endl; coutdata.a2endl;3. 分析以下程序的错误原因,给出修改方案使之能正确运行。#include class Amplifier float invol,outvol;public: Amplifier(float vin,float vout) invol=vin;outvol=vout; float gain()
14、;Float Amplifier: gain() return outvol/invol; void main() Amplifier amp(5.0,10.0); coutgain()endl;编程1. 建立一个对象数组,内放5个学生的数据(学号、成绩),用指针指向数组首元素,输出第1,3,5个学生的数据。#include using namespace std;class Student public: Student(int n,float s):num(n),score(s) void display(); private: int num; float score; ;void St
15、udent:display() coutnum scoreendl; int main()Student stud5= Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5); Student *p=stud; for(int i=0;idisplay(); return 0; 2 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。#include#includec
16、lass Employpublic: void display( );private: char name30; char sweetad100; char cityca100; char youzhen20;char name() ;char sweetad() ;char cityca() ;char youzhen() ; void Employdisplay( ) cout endl;void main( )char name30=wu guo yong; char sweetad100=xia men ji men qu; char cityca100=fu jian sheng pu tian shi fu shi; char youzhen20=351146; name.display( ); sweetad.display( ); cityca.display( ); youzhen.display( );return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1