你能帮我解决这个问题吗?我有四节课。蜜罐头:
class Honeypot
{
public:
int getNumberOfInterfaces();
Honeypot (int numberOfInterfaces);
virtual std::string typeHoneypot()=0;
protected:
int numberOfInterfaces;
};
蜜罐.cpp:
Honeypot::Honeypot(int numberOfInterfaces){
this-> numberOfInterfaces = numberOfInterfaces;
}
int Honeypot::getNumberOfInterfaces(){
return numberOfInterfaces;
}
Honeypot 类有子 HoneypotV 和 HoneypotN。现在我创建了具有多个 neteorkInterfaces 的对象:
Honeypot* NetworkType::createObject(int res1, int res2, int res3) {
if (res1 == 1 && res2 == 1 && res3 == 1) {
HoneypotV p1(3);
return &p1;
} else {
HoneypotN p2(3);
return &p2;
}
在主函数中:
NetworkType select;
Honeypot *p;
p = select.createObject(1,1,1);
cout << p->typeHoneypot() << endl;
cout << p-> getNumberOfInterfaces() << endl;
typeHoneypot() 是正确的,但是 getNumberOfInterfaces() 返回值 -858993460,正确的是 3。
谢谢你的回复。