我读过一本关于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