我有一個指針代碼如下:通/複製指向另一個指針
class NsObject : public TclObject, public Handler {
public:
NsObject();
virtual ~NsObject();
virtual void recv(Packet*, Handler* callback = 0) = 0;
virtual void recv(Packet* p, const char* s);
}
NsObject* uptargetTX;
NsObject* uptarget_;
void NsObject::recv(Packet *p, const char*)
{
Packet::free(p);
}
if (NodeType_ == TX) {
uptarget_->recv(ppp, (Handler*) 0);
*uptargetTX = *uptarget_; //in this line error happens
}
我想用*uptargetTX = *uptarget_;
但是一個合格/指針uptarget_
複製到uptargetTX
出錯
segmentation fault (core dumped)
然後我更改爲uptargetTX = uptarget_;
,但發生同樣的錯誤。如何消除這個錯誤?
我得到了這個錯誤:錯誤:無法分配抽象類型'NsObject'的對象 – user2290560 2014-09-22 07:59:12
@ user2290560您通過聲明'virtual void recv = 0'來讓您的類抽象,因此您無法構建它的一個對象。 – TNA 2014-09-22 08:27:07