試圖快速瞭解virtual
函數如何工作,但不確定爲什麼下面的代碼不打印任何輸出。據我所知,由於moveMouth()
是virtual
,它應該使用talk
類中的moveMouth()
版本。C++虛函數簡單示例
/*
* main.cpp
*
* Created on: Mar 29, 2015
* Author: Admin
*/
#include <iostream>
using namespace std;
class talk{
public:
int a=5;
void moveMouth(){
cout <<"blah blah blah"<<endl;
}
};
class person : public talk {
public:
int id;
person(int a): id(a) {
}
virtual void moveMouth(){
//cout <<"word word word"<<endl;
}
};
int main(){
person* p = new person(0);
p->moveMouth();
return 0;
}
您需要將基類函數聲明爲虛函數 –