我被困了,已经尝试了很多来解决这个"虚拟"问题,所以我求求你帮助我,因为它可能是一个愚蠢的"受过训练的眼睛"可以在几秒钟内解决..
问题:当我在main中执行以下操作时:
PrologConnector swiProlog;
swiProlog = PrologConnector::connectorFactory(PrologConnector::swi,argv);
swiProlog.send("blabla");
Run Code Online (Sandbox Code Playgroud)
始终调用PrologConnector类的send方法,但不调用子类中的方法..您是否看到了问题?
谢谢您的帮助!!
这是代码:PrologConnector.h
class PrologConnector {
virtual int send(char * cmd);
virtual int init(char **argv);
static PrologConnector connectorFactory(Prolog prolog, char ** argv);
};
Run Code Online (Sandbox Code Playgroud)
PrologConnector.cpp
int PrologConnector::send(char * argv) {
std::cout << "not wanted"<<std::endl;
return 0;
}
int PrologConnector::init(char **argv) {
//TODO add implementation
return 0;
}
PrologConnector PrologConnector::connectorFactory(Prolog prolog, char **argv) {
if (prolog == swi) {
SWIConnector sc;
sc.init(argv);
return sc;
}
std::cout <<"Error in initialization!"<<std::endl;
PrologConnector pc;
return pc;
}
Run Code Online (Sandbox Code Playgroud)
SWIConnector.h:
class SWIConnector : public PrologConnector {
int send(char *cmd);
int init(char **argv);
};
Run Code Online (Sandbox Code Playgroud)
SWIConnector.cpp:
int SWIConnector::init(char **argv) {
//some action going on
}
int SWIConnector::send(char * cmd) {
//some action going on
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |