要求:1)定义构造函数、析构函数,构造函数包括无参构造函数、有参构造函数、拷贝构造函数。
2)在类circle中添加静态成员counter,为生成的对象计数。并在类中添加一个数据成员,记录此对象的编号,编号按照生成的先后顺序赋值,即对象生成时的counter值。重新编写输出圆信息的函数,将编号信息也包含在输出之列。
3)添加一个友元函数,比较两个圆对象的面积大小。输出比较结果。
4)在测试程序main()中,完成如下的测试。
1)定义3个circle对象,分别调用无参构造函数、有参构造函数、拷贝构造函数。
2)计算三个对象的周长、面积并输出。
3)定义一个指针对象,使用new动态申请空间,计算其周长、面积并输出,用delete消除。
4)定义一个普通对象数组,包含5个元素,分别计算其周长、面积并输出。
5)定义一个指针对象数组,包含5个元素,分别计算其周长、面积并输出。
答案仅供参考。
#include
#include<>
using namespace std;
const double pi=3.141593;
class circle
public:
circle()
circle(int r)
~circle();
circle(const circle&obj)
void setm(int r);
static int getcounter();
int getn();
void show();
int getm();
double getgirth();
double getarea();
friend void compares(circle &c1,circle &c2);
private:
int m;
int n;
static int counter;
int circle::counter=0;
circle::~circle()
cout<<"正在析构编号为"< counter--;
double circle::getgirth()
return 2*pi*m;
double circle::getarea()
return pi*m*m;
void circle::setm(int r)
m=r;int circle::getm()
return m;
int circle::getcounter()
return counter;
int circle::getn()
return n;
void circle::show()
cout<<"编号为"< cout<<"面积=" void compares(circle &c1,circle &c2) if(> cout<<"编号为"<<的圆的面积大"< else if(< cout<<"编号为"<<的圆的面积大"< else cout<<"编号为"<<和"<<的圆的面积一样大"< cout<} int main() srand(time(null)); circle c1,c2(2),c3=c2; compares(c2,c3); circle *c4=new circle(3); c4->show(); delete c4; circle shuzu[5]; int i; for(i=0;i<5;i++) circle *p=new circle[5]; for(i=0;i<5;i++) delete p; return 0; 课后习题5。 掌握基类、派生类之间的构造函数传值、调用。 例如:class cvehicle public: cvehicle( int iwheelnum ) void vshow( void ) private: int m_iwheelnum轮数。 class ccar : public cvehicle public: ccar( int iwheelnum, int ipassennum ):cvehicle( iwheelnum ) void show( void ) private: int m_ipassennum; /载客人数。 void main( void ) ccar car(4,5); 课后习题6. 在第6题的基础上,添加如下操作。 在基类cpublication中添加一个日期类date的对象:出版时间pub_date。关于数据的操作,如(显示数据、赋值等操作),同时添加上对于此对象的数据操作。 #ifndef _3_3_h_ #define _3_3_h_ class date public: void setdate(); void print(); private: int year; int month; int day; class cpublication public: void getdata(); void putdata(); protected: date pub_date; private: char biaoti[30]; float jnum; class cbook:virtual public cpublication public: void getdata(); void putdata(); private: float tnum; #endif; #include"" void cpublication::getdata() char b[30]; float j; int i; cout<<"qingshurubiati:" cout<<"qingshurujiage: "cin>>j; pub_for(i=0;i<30;i++) biaoti[i]=b[i]; jnum=j; void cpublication::putdata() cout<<"biaotiwei: "cout<<"jiagewei: "pub_ void cbook::getdata() int y; cout < ynum=y; void cbook::putdata() cout<<"yeshuwei: " void ctape::getdata() foat t; cout<<"qingshurubofangshjian(yifenzhongweidanwei): cin>>t; tnum=t; void ctape::putdata() cout<<"bofangshijianwei(yifenzhongwedanwei): void date::setdate() int y,cout<<"qingshuruchubansijian(nianyueri): cin>>y>>m>>d; year=y; month=m; day=d; void date::print() cout<<"chubanshijianwei: " #include #include"" #iclude"" int main() cbook b1; b1..cbook::putdata(); cout 第一章作业 2014 3 11 1 习题一 1xt1 5 1 xt1 6 1 xt1 7 1 xt1 8 2 第二章作业 2014 3 11 2 习题二 2第三章作业 2013 3 11 2 习题三 2第一章 第三章重点 2 一 重要知识点 2 2.1 选择题 3 2.2 填空题 10 二 作业 1... 第一部分整理 据说必考的!以下数字都是书上的页码 p53 注意 base p59实参和形参之间的四种按值传递!一定要掌握的!p110集合类,据说要写程序!自己看吧p125多catch语句的这段 要掌握啊!p129委托是个重点,委托 这个标题下面的几行阴影的字!p132事件,与委托的区别和联系!p13... 一 判断题 正确的打 错误的打 每题1分,合计1x10 10分 1.c语言中,016218表示为一个八进制整数。错 2.switch c 语句中,c可以是int,long,unsigned char,char,unsigned int类型。对 3.有数组定义int a1 2 2 则a1 1 1 的值...《C语言》作业汇总
C考点汇总
2024年C笔试题汇总