21xrx.com
2024-12-22 20:00:32 Sunday
登录
文章检索 我的文章 写文章
如何使用C++编写一个矩形类?
2023-06-29 03:32:24 深夜i     --     --
C++ 矩形类 编写 属性 方法

在C++中,矩形是一个非常基础的图形形状。为了方便程序员在开发时使用矩形,我们可以使用面向对象的思想,编写一个矩形类。

1. 定义类和成员变量

首先,我们需要定义一个矩形类,并声明需要的成员变量。一般来说,一个矩形需要至少两个参数:宽度和高度。我们可以声明这两个数据成员:


class Rectangle

private:

  double width;

  double height;

;

2. 定义构造函数

接着,我们需要实现一个构造函数,让用户可以创建一个矩形对象,并初始化其宽度和高度。一般来说,构造函数应该与类名相同,而且不需要返回值。我们可以声明以下构造函数:


class Rectangle {

private:

  double width;

  double height;

public:

  Rectangle(double w, double h)

    width = w;

    height = h;

  

};

这个构造函数需要两个参数,分别是矩形的宽度和高度。在函数体内,我们将这两个参数分别赋值给矩形的宽度和高度。

3. 实现类的成员函数

接下来,我们需要定义一些类的成员函数,以便用户可以获取矩形的宽度、高度、面积和周长等信息。比如,我们可以实现以下函数:


class Rectangle {

private:

  double width;

  double height;

public:

  Rectangle(double w, double h)

    width = w;

    height = h;

  

  double getWidth() const

    return width;

  

  double getHeight() const

    return height;

  

  double getArea() const {

    return width * height;

  }

  double getPerimeter() const {

    return 2 * (width + height);

  }

};

这些函数分别返回矩形的宽度、高度、面积和周长。注意,在函数名后面使用了 const 关键字,表示这些函数不会修改成员变量的值。

4. 程序示例

最后,我们可以编写一个简单的示例程序,测试我们所编写的矩形类:


#include <iostream>

using namespace std;

class Rectangle {

private:

  double width;

  double height;

public:

  Rectangle(double w, double h)

    width = w;

    height = h;

  

  double getWidth() const

    return width;

  

  double getHeight() const

    return height;

  

  double getArea() const {

    return width * height;

  }

  double getPerimeter() const {

    return 2 * (width + height);

  }

};

int main() {

  Rectangle rect(5, 3);

  cout << "Width: " << rect.getWidth() << endl;

  cout << "Height: " << rect.getHeight() << endl;

  cout << "Area: " << rect.getArea() << endl;

  cout << "Perimeter: " << rect.getPerimeter() << endl;

  return 0;

}

在这个程序中,我们首先创建了一个矩形对象 rect,宽度为 5,高度为 3。然后,我们使用矩形类的各个函数获取矩形的各项信息,并输出到屏幕上。

通过以上程序示例,我们可以了解到如何使用C++编写一个矩形类,并通过类的成员函数获取矩形的各项参数。在实际开发中,我们可以根据需要扩展矩形类,增加类的成员函数和数据成员,以满足自己的需求。

  
  

评论区

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