背景:我的这个工程里有多个命名空间,之所以是这样是因为,有一个跟踪算法他本身有几个namespace,然后我在他的基础上进行整合代码,将其作为一个功能接口,供其他函数调用,我在整合代码时,将我新加的类放在一个新的namespace中。
所以我在namespace中添加了class FDSSTTracker,,
我是这样调用的,刚开始,这里 FDSST是我新创建的namespace, 我需要在System类中初始化FDSSTTracker的指针对象,
FDSSTTracker* mpFdsster;
然后在System的构造函数中初始化指针对象。
mpFdsster = new FDSSTTracker(mHog, mFixWindow, mMultiScale, mLab);
我编译的时候出现如下错误:“incomplete type is not allowed”
我倒腾了半天,网上也众说纷纭,最后我放弃了,自己慢慢看代码,我无意中尝试将放在namespace中的class FDSSTTracker;语句去掉,代码竟然编译通过了。
上面class Tracking; class Capturing;之所以可以这样用,大概因为他们几个类都在一个namespace下,而FDSSTTracker类不在这个namespace下,所以就出错了,其实都没必要加,我试了一下,只要添加了对应的头文件,就可以了。