目前我正在閱讀Stroustrup Programming:Principles and Practice C++。我面對這個例子:遞歸函數指針。 Stroustrup的例子
typedef void (*Pfct0)(struct Shape2*);
typedef void (*Pfct1int)(struct Shape2*,int);
struct Shape2{
Pfct0 draw;
Pfct1int rotate;
};
void draw(struct Shape2* p)
{
(p->draw)(p);
}
void rotate(struct Shape2* p,int d)
{
(p->rotate)(p,d);
}
int f(struct Shape2* pp)
{
draw(pp);
return 0;
}
我不能得到什麼函數繪製和旋轉實際上做。 我知道什麼是typedef,函數指針, - >運算符。 據我瞭解,p-> draw函數會自動遞歸調用。我對嗎? 做繪畫或旋轉等功能有什麼實際用途?
不,他們不是自動遞歸地調用它們。他們調用結構的繪製和旋轉字段中包含的函數。 – George
這裏沒有遞歸。非類函數只是通過指針調用類函數。 – EJP
您能否指定在哪裏繪製或旋轉字段?我不明白。或者,也許你可以把一些參考樣本代碼,在那裏我可以閱讀有關類似的問題 – Qeeet