我讀過一本關於C++中成員函數綁定問題的書。C++成員函數綁定
和它給下一個例子:
void Window::oops() { printf("Window oops\n"); }
void TextWindow::oops() {
printf("TextWindow oops %d\n", cursorLocation);
Window win;
Window *winPtr;
TextWindow *txtWinPrt = new TextWindow;
win = *txtWinPrt;
winPtr = txtWinPtr;
win.oops(); // executes Window version
winPtr->oops(); // executes TextWindow or Window version;
我不明白爲什麼會win.oops
執行窗口的版本? win被定義爲Textwindow。
謝謝你的幫助。
不,它被定義爲Window。 – 2011-05-10 11:51:41
請添加類定義的繼承模式和使用virtual關鍵字可能會改變你的例子的行爲。 – VGE 2011-05-10 11:53:38
看起來這不是一本很好的書。也許你可以找到另一個更有用的例子嗎? – 2011-05-10 11:55:30