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;
}
仮想関数として基本クラス関数を宣言する必要があります –