定义一个类的对象时,编译报错:error: 'NMIap2StackDevAudioCmp' does not name a type,该如何解决

定义一个类的对象时,编译报错:error: 'NMIap2StackDevAudioCmp' does not name a type
使用的类:
    class NMIap2StackDevAudioCmp : public NMIap2StackRestCmp
    {
    public:
        explicit NMIap2StackDevAudioCmp(NMIap2StackCtx& context):
            NMIap2StackRestCmp(context)
        {
            m_record.clear();
        }

        virtual ~NMIap2StackDevAudioCmp() {}

    public:
        virtual BOOL onEvent(NMIap2StackEvt& event);
        virtual BOOL onProcReq(NMIap2StackRequest& request);
        virtual BOOL onProcRes(INT pkUID, ComErrorCode code);
        virtual BOOL onUsbDevSampleRateUpd(NMControlSessionRxMsg* msg);
        virtual BOOL isFinished();

    private:
        Iap2RequestType findRequest(INT pkUID);

    private:
        typedef std::map<INT, Iap2RequestType> ReqRecord;
        typedef std::pair<INT, Iap2RequestType> pair;
        ReqRecord m_record;
    };

建立对象的方法:
class TestNMIap2StackDevAudioCmp : public testing::Test
{
public:
TestNMIap2StackDevAudioCmp();
    virtual ~TestNMIap2StackDevAudioCmp();


    void SetUp();
    void TearDown();

    static void SetUpTestCase();
    static void TearDownTestCase();

private:

    NMIap2StackDevAudioCmp   m_StackDevAudioCmp;

private:
    TestNMIap2StackDevAudioCmp(const TestNMIap2StackDevAudioCmp&);
    TestNMIap2StackDevAudioCmp& operator=(const TestNMIap2StackDevAudioCmp&);
};



------解决思路----------------------
我屏蔽了一些代码,可以过去。这些代码写在一起
class NMIap2StackDevAudioCmp
{
public:
// explicit NMIap2StackDevAudioCmp(NMIap2StackCtx& context):
NMIap2StackRestCmp(context)
{
// m_record.clear();
}

virtual ~NMIap2StackDevAudioCmp() {}

public:
// virtual BOOL onEvent(NMIap2StackEvt& event);
// virtual BOOL onProcReq(NMIap2StackRequest& request);
// virtual BOOL onProcRes(INT pkUID, ComErrorCode code);
// virtual BOOL onUsbDevSampleRateUpd(NMControlSessionRxMsg* msg);
// virtual BOOL isFinished();

private :
// Iap2RequestType findRequest(INT pkUID);

// typedef std::map<INT, Iap2RequestType>ReqRecord;
// typedef std::pair<INT, Iap2RequestType>pair;

// ReqRecord m_record;
};

class TestNMIap2StackDevAudioCmp
{
public:
TestNMIap2StackDevAudioCmp();
virtual ~TestNMIap2StackDevAudioCmp();

void SetUp();
void TearDown();

static void SetUpTestCase();
static void TearDownTestCase();

private:

NMIap2StackDevAudioCmp m_StackDevAudioCmp;

TestNMIap2StackDevAudioCmp(const TestNMIap2StackDevAudioCmp&);
TestNMIap2StackDevAudioCmp& operator = (const TestNMIap2StackDevAudioCmp&);
};