面向对象编程是C++语言中的核心特性,它允许我们通过模拟真实世界中的对象来组织和管理代码。在这些习题中,我们看到了几个基础的面向对象概念的运用,包括类的定义、对象的创建、成员函数的使用以及静态成员的概念。
第4-8题的`Dog`类展示了如何定义一个包含属性(如年龄`age`和体重`weight`)和方法(用于设置和获取这些属性)的类。`setAge`和`setWeight`是设置成员变量的函数,而`getAge`和`getWeight`则用于返回成员变量的值。在`main`函数中,我们创建了一个`Dog`对象`d`,并通过成员函数设置了它的属性,并打印了这些属性的值。
接着,第4-9题的`Rectangle`类设计了一个矩形,矩形的左下角和右上角的坐标作为属性。`Rectangle`类还包含一个计算面积的成员函数`getArea`,它利用坐标计算矩形的长度和宽度。在`main`函数中,我们创建了一个`Rectangle`对象`rec`,并输出了它的面积。
第4-11题与第4-9题类似,但是矩形的属性直接表示为长和宽,而非坐标。`Rectangle`类的构造函数接受长和宽作为参数,`getArea`函数计算面积。
第4-13题的`Circle`类定义了一个圆,其数据成员`radius`代表半径。`getArea`成员函数用于计算圆的面积,使用了常量`PI`。在`main`函数中,我们创建了一个`Circle`对象`c`,并输出了圆的面积。
第4-20题的`plex`类代表复数,它有两个数据成员,`real`表示实部,`image`表示虚部。`add`函数实现了复数的加法,`show`函数用于打印复数的表示形式。`plex c2=4.5;`这行代码展示了C++的隐式类型转换,将浮点数转换为了复数。
第5-7题的`Cat`类引入了静态数据成员`numOfCats`,它记录`Cat`类的所有实例数量。`numOfCats`的增加和减少在构造函数和析构函数中进行。`getNumOfCats`是静态成员函数,用于获取当前的猫的总数。在`main`函数中,我们创建和销毁`Cat`对象,观察`numOfCats`的变化,理解静态成员的作用。
这些题目覆盖了C++面向对象编程的基本要素,包括类的设计、对象的实例化、成员函数的使用、以及静态成员和静态成员函数的概念。通过解决这些习题,可以深入理解C++中的面向对象编程思想。