1、思路:(1)建立一个静态成员 static int total_vol;累加体积(2)建立一个cylinder 的友元函数用来获取它的私有数据(3)main函数中建立三个类,cylinder的对象,并用静态成员完成累加,友元显示数据。1、已知类Cstring和main()函数class Cstring char *str; int size; public: .;(1)、主程序如下:void main() Cstring s1(“is a wondful ”);/调用有字符串参数的构造函数 Cstring s2(“programming Language!”); Cstring s3; /调用
2、没有参数的构造函数 S3=”C+”+(s1+s2) /调用复制(拷贝)构造函数,同时还要对“”进行重载试编写一个程序,以实现main()函数中的字符串拼接。输出结果如下:(2)、主程序如下: Cstring s1(“C+ is a wondful ”); Cstring s2(“programming ”); s3= (s1+s2)+ “Language!”/调用复制(拷贝)构造函数,同时还要对“”进行重载输出结果如(1)的结果(3)、主程序如下: Cstring s2( “Language! s3= s1+ “programming ”+s2 /调用复制(拷贝)构造函数,同时还要对“”进行重
3、载(1)(2)(3)3、写一个程序,定义抽象基类Cshape,由它派生出5个派生类:Ccircle(圆形),Csquare(正方形),Crectangle(矩形),Ctrapezoid(梯形),Ctriangle(三角形),用一个虚函数分别计算几种图形的面积,并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。(1)定义一个抽象基类Shape,同它派生出5个类:圆、正方形、矩形、梯形、三角形。 (2)利用虚函数计算几种图形面积。 (3)演示构造函数、复制构造函数、析构函数的作用和调用顺序 (4)用类模板具体实现。4、设计一个“operator=”函数模板,用于比较各类型数据是否
4、正确。总结:C+是C的一个面向对象的解释,C+为C扩充了大规模工程应用,复杂的系统结构的组织和掌控方法,但是,C+最基础的还是C的。毕竟,解决具体问题,每个函数内部,都是用C的方式写程序,还是面向过程的。因此,想要学习好C+,先学习C,先学解决问题的能力,再讨论解决大问题的能力。面向对象的特点: 继承封装多态。引用与指针:都与地址有关系。引用在声明时必须初始化,指针可以先声明再赋初值。引用一旦初始化,就不能再指向别的变量,而指针可以。引用不能为空,而指针可以为空。Sizeof(引用)是所引用的实体的大小,sizeof(指针)=4。默认构造函数:只能开辟空间,不能赋值。C+规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象。若未提供一个类的构造函数,则C+提供一个默认的构造函数,该默认构造函数是个无参构造函数,它仅负责创建对象,而不做任何初始化工作。只要一个类定义了一个构造函数(不一定是无参构造函数),C+就不再提供默认的构造函数。也就是说,如果为类定义了一个带参数的构造函数,还想要无参构造函数,则必须自己定义。与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,否则,对象值是随机值。