C++程序设计基础课后答案第五章.docx
C+程序设计基础课后答案 第五章 void main() employee emp5 = "Liming", 'm', "Wangxiaoping", 'f', "Luwei", 'm' ; int i ; for( i=0; is q->s q->q->s >total; cout>alli.name; cout> alli.id; cout> alli.salary ; void Sort(person all, int pi, const int n) int i,j; int t; /交换用中间变量 for(i=1; iallpij+1.salary) /通过索引数组访问结构数组元素 t=pij; /交换索引数组元素值 pij=pij+1; pij+1= t; void Output(const person all, int pi, const int n) for( int i=0; inext 4结构和类有什么区别?如果把程序中定义结构的关键字struct直接改成class,会有什么问题?用教材上的一个例程试一试,想一想做什么修改能使程序正确运行? 结构是数据的封装,类是数据和操作的封装。可以把结构看成是类的特例。结构和类都可以用关键字struct或class定义。区别是,struct定义的结构或类的全部成员都是公有的,用class定义的结构或类不做声明的成员是私有的。 若把struct改成class,只需要把全部成员定义为public就可以了。 5有说明 class A int a; double x; public: funMember(); ; A a1, a2, a3 ; 编译器为对象a1、a2和a3开辟了什么内存空间?它们有各自的funMember函数的副本吗?C+通过什么机制调用类的成员函数? 开辟的存储空间有a1.a, a1.x, a2.a, a2.x, a3.a, a3.x。各对象没有funMember函数的副本,C+通过this指针调用成员函数。 6C+提供了默认版本的构造函数,为什么还需要用户自定义构造函数?编写一个验证程序,说明自定义构造函数的必要性。 类的默认构造函数可以建立基本类型数据成员的存储空间。基于以下两个原因,需要用户定义构造函数:(1)对数据成员的值做指定初始化;