c++面向对象模块化设计代码
时间: 2023-09-11 18:08:10 浏览: 47
下面给出一个简单的例子,展示如何使用C语言实现面向对象模块化设计的代码:
```c
// shape.h
#ifndef SHAPE_H
#define SHAPE_H
typedef struct {
double x;
double y;
} Point;
typedef struct {
Point center;
double radius;
} Circle;
typedef struct {
Point corner;
double width;
double height;
} Rectangle;
void move_shape(Point *p, double dx, double dy);
#endif
// shape.c
#include "shape.h"
void move_shape(Point *p, double dx, double dy) {
p->x += dx;
p->y += dy;
}
// main.c
#include "shape.h"
#include <stdio.h>
int main() {
Circle c = {{0, 0}, 1};
Rectangle r = {{0, 0}, 2, 2};
move_shape(&c.center, 1, 1);
move_shape(&r.corner, 2, 2);
printf("Circle center: (%.2f, %.2f)\n", c.center.x, c.center.y);
printf("Rectangle corner: (%.2f, %.2f)\n", r.corner.x, r.corner.y);
return 0;
}
```
这个例子中,我们定义了两个形状(圆和矩形)的结构体类型,并且定义了一个移动形状的函数。在主函数中,我们创建了一个圆和一个矩形,并且对它们进行了移动。最后,我们输出了移动后的圆心和矩形的左上角坐标。
这个代码的好处是,我们使用了模块化的设计,将形状的定义和移动函数的实现分别放在了不同的文件中。这样做的好处是,我们可以将这些模块化的代码在其他项目中重复使用,而不需要重新编写。同时,我们使用了面向对象的思想,将形状看作一个对象,并且定义了移动这个对象的方法。