class Base
{
protected:
template<typename TFunc>
void m_vProcess(TFunc& func) const
{
BasePrivateClass<TFunc> baseprivateobj(func);
// rest of code
}
private:
template<typename TFunc>
class BasePrivateClass
{
public:
BasePrivateClass(TFunc& obj) :m_obj(oParam)
{}
private:
TFunc& m_obj;
};
};
这是我的派生类:
class Derived: public Base
{
private:
class DerivedPrivateClass
{
public:
explicit DerivedPrivateClass(int **p): m_objDerived(poParam)
{}
private:
int** m_objDerived;
};
};
从Derived类中的函数,我试试这个:
DerivedPrivateClass obj(param);
this->m_vProcess(obj);
我得到了多重定义符号的链接器错误 - 符号在基类和派生类中定义。
我不知道导致链接器错误的原因。有人可以帮忙吗?
答案 0 :(得分:0)
正如我评论的那样......有点难以阅读..但从它的外观来看,一个主要的问题是你试图使用的m_vProcessAnimParams函数在Base中是私有的,所以Dervied无法访问它..