-4
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;
};
};
衍生類的功能,我試試這個:
DerivedPrivateClass obj(param);
this->m_vProcess(obj);
我獲得多重定義符號的鏈接器錯誤 - 符號在基類和派生類中定義。
我不知道是什麼導致鏈接器錯誤。誰能幫忙?
什麼是鏈接器錯誤? – Alon 2013-03-26 07:46:10
@Alon:符號被多重定義。基類的許多函數/變量都存在於基類和派生類的對象文件中。 – mdv 2013-03-26 07:47:44
你想念;在課程結束的時候我會在代碼中加入 – Alon 2013-03-26 07:49:58