c++中一个重要的特点就是代码的重用,为了代码重用,有两个非常重要的手段,一个是继承,一个是组合
组合 (Composition) 指在一个类中另一类的对象作为数据成员.
在平面上两点连成一条直线, 求直线的长度和直线中点的坐标.
要求:
Dot 类:
#ifndef PROJECT5_DOT_H #define PROJECT5_DOT_H #includeusing namespace std; class Dot { public: double x, y; Dot(double a, double b) : x(a), y(b) {}; void show() { cout <<"x: " <
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: (" <
main:
#include#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内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!