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;
}
}foofoo
foo foo_obj(3, 4); int sum = foo_obj.add();
add
- 3 回答
- 0 關注
- 667 瀏覽
添加回答
舉報
