3 回答
TA贡献1812条经验 获得超5个赞
每个函数都是 封装 ;在伪码中: point x = { 1, 4 } point y = { 23, 42 } numeric d = distance(x, y)
这里, distance
封装平面中两点之间(欧几里德)距离的计算:它隐藏实现细节。这是封装,纯而简单。 抽象化 是…的过程 泛化 *具体实施,并使其适用于不同类型的数据,尽管有些相关。抽象的经典例子是C的 qsort
函数对数据进行排序: 关于 qsort
是它不关心它排序的数据-事实上,它 不知道它分类的数据。相反,它的输入类型是一个无类型指针( void*
),这只是C的一种说法:“我不在乎数据的类型”(这也称为类型擦除)。重要的一点是 qsort
无论数据类型如何,始终保持不变。唯一 有更改是比较函数,它因数据类型而异。 qsort
因此,期望用户将所述比较函数作为函数参数提供。
class point { numeric x numeric y }
T pi<T> = 3.1415926535
pi
template <typename T> constexpr T pi = T{3.1415926535};
TA贡献1798条经验 获得超3个赞
封装
抽象化
TA贡献1786条经验 获得超11个赞
封装
抽象化
封装:-- 信息隐藏.
抽象:-- 实现隐藏.
class foo{ private: int a, b; public: foo(int x=0, int y=0): a(x), b(y) {} int add(){ return a+b; } }
foo
foo
foo foo_obj(3, 4); int sum = foo_obj.add();
add
- 3 回答
- 0 关注
- 610 浏览
添加回答
举报