首先,请原谅我的英文不好。使用类列表C++的虚拟方法
我想在C++中使用继承来实现跳棋,为此我设置了基类piece
和2个派生类,pawn
和queen
。
我从班级列表中使用了两个列表,每个玩家一个,并且在第一个版本中(只有兵)才能正常工作。
但是现在我将pawn
列表更改为piece
列表,并且我有一些问题。
我打电话给pawn
的构造函数,所以对象是pawn,但是当我调用一个方法时(它在piece
类中是虚拟的)调用piece
方法!
这是我有:
piece.hpp:
virtual int calculardestino(int,tablero*){ cout <<"Not here" << endl;};
pawn.cpp:
int peon::calculardestino(int dir,tablero* B){ cout <<"Yep here is ok" << endl;}
我使用这个设置典当列表:
listarojo.push_back(peon(i,j,1));
我尝试调用这样的方法:
pos=listarojo.begin();
pos->calculardestino(0,this);
但我从来没有得到"Yep here is ok"
,只有"Not here"
。
我试图让它变成纯虚拟的,但是我在编译时出错。
再次,对不起我的英语不好。
你可以发布你的类的代码(头+实现)吗? –
您是否尝试过[使用调试器](http://www.youtube.com/watch?v=eEJ5xKO7c3o)? – sashoalm