概述 c++中一个重要的特点就是代码的重用,为了代码重用,有两个非常重要的手段,一个是继承,一个是组合 组合 (Composition) 指在一个类中另一类的对象作为数据成员.
c++中一个重要的特点就是代码的重用,为了代码重用,有两个非常重要的手段,一个是继承,一个是组合
组合 (Composition) 指在一个类中另一类的对象作为数据成员.
在平面上两点连成一条直线, 求直线的长度和直线中点的坐标.
要求:
Dot 类:
#ifndef PROJECT5_DOT_H
#define PROJECT5_DOT_H
#include <iOStream>
using namespace std;
class Dot {
public:
double x, y;
Dot(double a, double b) : x(a), y(b) {};
void show() {
cout << "x: " << x << endl;
cout << "y: " << y << endl;
};
};
#endif //PROJECT5_DOT_H
Line 类:
#ifndef PROJECT5_LINE_H
#define PROJECT5_LINE_H
#include "Dot.h"
class Line : public Dot {
private:
Dot d1;
Dot d2;
public:
Line(const Dot &d1, const Dot &d2) : Dot(0, 0), d1(d1), d2(d2) {
x = (d1.x + d2.x) / 2;
y = (d1.y + d2.y) / 2;
}
void show(){
Dot::show();
cout << "dot1: (" << d1.x << ", " << d1.y << ")" << endl;
cout << "dot2: (" << d2.x << ", " << d2.y << ")" << endl;
}
};
#endif //PROJECT5_LINE_H
main:
#include <iostream>
#include "Dot.h"
#include "Line.h"
using namespace std;
int main() {
double a, b;
cout << "Input Dot1: \n";
cin >> a >> b;
Dot dot1(a,b);
cout << "Input Dot2: \n";
cin >> a >> b ;
Dot dot2(a,b);
Line l1(dot1, dot2);
l1.show();
return 0;
}
输出结果:
Input Dot1:
1 2
Input Dot2:
4, 6
x: 2.5
y: 1
dot1: (1, 2)
dot2: (4, 0)
到此这篇关于C++ 组合(Composition)的文章就介绍到这了,更多相关C++ 组合Composition内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: C++ 组合 (Composition)的介绍与实例
本文链接: https://lsjlt.com/news/126071.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0