21xrx.com
2024-12-22 18:31:50 Sunday
登录
文章检索 我的文章 写文章
C++类编程题练习
2023-06-26 12:14:22 深夜i     --     --
C++ programming Object-oriented programming Class design Inheritance Polymorphism

C++是一门强类型编程语言,它支持面向对象编程(OOP),其中类是一种基本的OOP概念。在C++中,类是一种用户定义的类型,可以将数据和函数包含在一个逻辑实体中。面向对象编程的核心思想是将相似的数据和函数归为一个类,从而实现代码重用、封装和抽象。因此,对于想要练习C++编程的开发者而言,熟悉类的编写和调用是很重要的。

下面,我们就来通过几个实例来模拟练习C++类编程。

### 练习一:学生类的定义和使用

先看以下需求:

* 学生类包含两个属性:姓名和分数

* 学生类包含两个方法,一个是构造方法需要传入姓名和分数,另一个是获取学生信息的方法

* 主函数创建几个学生对象,并且打印输出学生姓名和分数

基于上述需求,我们可以先定义一个学生类:


class Student {

public:

  char *name;

  int score;

  Student(char *n, int s) : name(n), score(s) {}

  void show() score=" << score << std::endl;

  

};

上述代码中,我们定义了一个 `Student` 类,其中包括两个属性 `name` 和 `score`。`Student` 类还定义了一个构造函数 `Student(char *n, int s)`,这个构造函数用来初始化对象属性值。`Student` 类的另外一个方法是 `show()`,用于将学生的信息打印输出。

下面是主函数:


int main() {

  Student s1("Bob", 80);

  Student s2("Tom", 90);

  Student s3("Mike", 70);

  s1.show();

  s2.show();

  s3.show();

  return 0;

}

主函数中,我们定义了三个学生对象 s1、s2 和 s3,并且为它们分别设置了姓名和分数。最后通过调用 `show()` 方法,输出了三个学生的信息。

### 练习二:图形类的定义和使用

接下来,我们再定义一个图形类,里面包括两种图形:长方形和圆形。

首先,我们定义一个基类——图形类:


class Shape {

public:

  virtual float area() = 0;

};

图形类是一个抽象类,其中包括一个纯虚函数 `area()`,它表示图形的面积,不同的图形将实现该函数以计算不同的具体面积。

下面,我们定义一个长方形类,它是图形类的派生类:


class Rectangle : public Shape {

public:

  float width;

  float height;

  Rectangle(float w, float h) : width(w), height(h) {}

  virtual float area() {

    return width * height;

  }

};

上述代码中,我们定义了一个长方形类 `Rectangle`,它包括两个属性 width 和 height,分别代表长和宽。`Rectangle` 类的构造函数 `Rectangle(float w, float h)` 用于初始化长方形的属性值。

此外,`Rectangle` 类还实现了Geometry方法 `area()`,用于计算长方形的面积。

接下来,我们再来定义一个圆形类,同样它是图形类的派生类:


class Circle : public Shape {

public:

  float radius;

  Circle(float r) : radius(r) {}

  virtual float area() {

    return 3.14 * radius * radius;

  }

};

看到这里,大家应该已经很容易理解了。上述代码中,我们定义了一个圆形类 `Circle`,它包括一个属性 radius 表示半径 。`Circle` 类的构造函数 `Circle(float r)` 用于初始化圆形的属性值。

同样的,`Circle` 类还实现了Geometry方法 `area()`,用于计算圆形的面积。

主函数如下:


int main() {

  Shape *s[2]; // 定义一个Shape数组,存放长方形和圆形

  s[0] = new Rectangle(5, 4);

  s[1] = new Circle(3);

  for(int i=0; i<2; i++) {

    std::cout << "area=" << s[i]->area() << std::endl;

  }

  return 0;

}

在主函数中,我们先定义了一个 `Shape` 数组,并在其中依次存放了 `Rectangle` 和 `Circle` 两个对象。循环遍历数组 `s`,分别调用 `area()` 函数计算两个图形的面积,并打印输出。

以上就是C++类编程题的练习示例,相信通过学习这些示例,大家可以更快速地掌握类的使用,进而开展更加高效的C++编程。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复