undefined reference to `vtable for xxx 之虚函数的原因

编写linux下J1939的解析协议栈出错,提示 错误:undefined reference to `vtable for CJ1939'搜索google发现大都说是cpp中添加了Q_OBJECT,但是我这个没有继承qt的任何类,后来发先原来是虚函数没有实现造成的,于是果断写了个类继承CJ1939,并在子类中实现了虚函数,编译还是出错。怎么回事呢?继续研究了一下104的协议,发现原来虚函数的定义出了问题:

    virtual int j1939_hal_trans_canpkt(const CAN_PACKET_T *pkt_ptr)= 0;;
    virtual int j1939_hal_canerror_process()= 0;;
    virtual int j1939_al_rcvcanpkt_process(J1939_RX_MESSAGE_T *msg_ptr)= 0;;

在函数后面加上 =0;

解决问题。

当时看到这个104的虚函数时还疑问为什么会有函数=0;原来如此啊,看来写C的对c++确实不熟悉。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值