#include
using namespace std;
//template模式。
class base
protected:
virtual
void
printf1() = 0;
virtual
void printf2() = 0;//讓子類實現演算法的具體實現。
};class son1 : public base
void printf2()
};class son2 : public base
void printf2()
};int main()
感悟:
基類的方法由不同子類去具體實現,我們需要什麼具體的演算法
或者演算法,直接構造相關的子類就可以使用,但是公共介面還
是定義在基類中,這樣方便所有的子類都可以利用c++多型機制進行覆蓋改寫。
下面是我的具體事例詳解:
#include
using namespace std;
//template模式。
class base
size = n;
}void printf()
cout << endl;
}void dowhat()
protected:
virtual
void
sort() = 0;//排序方法的實現。
int *data;
int size;
};class bubble : public base//氣泡排序。
void sort()}}
}};class insert : public base//插入排序。
void sort()
}for (; j > k; j--)
data[j] = temp;}}
};class qulick : public base//快速排序。
void sort()
private:
void
sort(int a, int low, int high)
data[i] = key;
sort(a,0,i-1);
sort(a,i+1,high);
}};class select : public base//選擇排序。
void sort()}}
}};int main()
; /*base *p = new qulick(a, 7);
p->dowhat();
p->printf();//插入排序。
*/base *p = new bubble(a,7);
p->dowhat();
p->printf();//氣泡排序。
return
0;}
跟我一起透徹理解template模板模式
include using namespace std template模式。class base protected virtual void printf1 0 virtual void printf2 0 讓子類實現演算法的詳細實現。class son1 public base void pr...
C 跟我一起透徹理解虛函式表
首先讓我們來了解類物件的構造順序。總結1 前提是基類是有虛表的,單一繼承,所有的成員類與基類共同維護同乙個虛表,各自有 乙個vptr指向這個虛表,子類如果會對虛表進行替換修改,具體會根據子類是否過載了基類的 虛函式來確定,我們成為覆蓋。多繼承下面討論,其實本質是一樣的,關鍵問題是,多繼承中 子類中到...
跟我一起學python 跟我一起學人工智慧(一)
跟我一起學人工智慧 一 文 小步 系列第一講正式開課啦,課程全都是可以實操的乾貨,到後面ai演算法 python 可以結合做出乙個簡單的人工智慧應用 因本人也對ai領域涉足不久,如文章有不妥之處還請各位大神與我多多交流,此系列文章也屬於我學習ai過程中的總結,我也會做到盡量寫出只要是高中畢業就能看懂...