将'this'传递给函数模板,给出错误

时间:2014-09-23 06:03:30

标签: c++ function-templates

我尝试从其他对象传递给对象this的函数模板,但它一直给我编译错误。这就是我的模板功能:

标题

中的

template<class T>
    void StopAndRemoveParticals(ParticleSystemQuad* &emitter,T* &parent);

在c ++中

template<class T> 
    void ParticleFactory::StopAndRemoveParticals(ParticleSystemQuad* &emitter,T* &parent)
    {
        bool ParticlesEmitterIsActive = emitter->isActive();
        if(emitter!= NULL)
        {        
            particaleTagName tag = (particaleTagName)emitter->getTag();
            parent->m_Parent->removeChildByTag(emitter->getTag());
        }
    }

从Some对象调用此函数:

1>\projects\game\classes\solutioncontainer.cpp(114): error C2664: 'void ParticleFactory::StopAndRemoveParticals<SolutionContainer>(cocos2d::ParticleSystemQuad *&,T *&)' : cannot convert parameter 2 from 'SolutionContainer *const ' to 'SolutionContainer *&'
1>          with
1>          [
1>              T=SolutionContainer
1>          ]

我在这里做错了什么,为什么我不能将指针传递给引用?

1 个答案:

答案 0 :(得分:0)

这似乎是const的问题(你可能试图从另一个const成员函数调用StopAndRemoveParticals),以及尝试获取对this指针的引用的问题。 / p>

代码似乎不需要引用指针,因此首先要删除它们。解决const问题需要您在调用StopAndRemoveParticals的函数中进行修改。