希望這將是一個簡單的方法。在研究解決方案工作了不同的問題,我遇到了以下問題:在模板派生類中複製構造函數
template <class Base>
class Derived : public Base
{
public:
Derived() {};
Derived(const Derived& rhs) :
Base::Base(rhs) { };
};
struct X { };
void test()
{
Derived<X> d1;
Derived<X> d2(d1);
}
test.cpp: In instantiation of ‘Derived<Base>::Derived(const Derived<Base>&) [with Base = X]’:
test.cpp:34:19: required from here
test.cpp:26:19: error: no type named ‘Base’ in ‘struct X’
Base::Base(rhs) { };
^
那麼,如何一個寫衍生模板類的拷貝構造函數? (在上面的例子中,假設我沒有能力改變X和它的內容是平凡的,如有更改)
它應該是'Base(rhs)',而不是'Base :: Base(rhs)' – lodo