編譯qt程序中出現了編譯錯誤:invalid new-expression of abstract class type “*”
1 class dx_iface : public DRW_Interface { 2 public: 3 dx_iface(){dxfW = NULL;} 4 ~dx_iface(){} 5 bool printText(const std::string& fileI, dx_data *fData); 6 void writeEntity(DRW_Entity* e); 7 ... 8 }
這個是由於抽象類DRW_Interface中的抽象接口,繼承類dx_iface沒有完全實現。
由於DRW_Interface中的抽象接口多大50-60個,哪些抽象接口沒有實現呢?
打開警告窗口,找DRW_Interface所在頭文件,可以看到DRW_Interface::writeObjects還沒有實現。
解決:
在dx_iface的頭文件中,增加實現即可!
virtual void writeObjects() {
// your code
}
