Aoi*_*asu 5 c++ inheritance templates visual-c++
这种情况甚至可能吗?
class Base
{
int someBaseMemer;
};
template<class T>
class Derived : public T
{
int someNonBaseMemer;
Derived(T* baseInstance);
};
Run Code Online (Sandbox Code Playgroud)
目标:
Base* pBase = new Base();
pBase->someBaseMemer = 123; // Some value set
Derived<Base>* pDerived = new Derived<Base>(pBase);
Run Code Online (Sandbox Code Playgroud)
pDerived-> someBaseMemer的值应该是pBase-> someBaseMember的equeal,与其他基本成员类似.
你为什么不真正完成代码的编写和编译呢?
class Base
{
public: // add this
int someBaseMemer;
};
template<class T>
class Derived : public T
{
public: // add this
int someNonBaseMemer;
Derived(T* baseInstance)
: T(*baseInstance) // add this
{ return; } // add this
};
Run Code Online (Sandbox Code Playgroud)
这将按照您指定的方式编译并运行。
编辑:或者你的意思是someNonBaseMemer
应该等于someBaseMemer
?
归档时间: |
|
查看次数: |
3515 次 |
最近记录: |