C++ 当您需要从模板继承而不是从模板继承时,如何从模板类继承?
听起来很糟糕。。但是有C++ 当您需要从模板继承而不是从模板继承时,如何从模板类继承?,c++,oop,templates,inheritance,C++,Oop,Templates,Inheritance,听起来很糟糕。。但是有 template < int ArrayLength, typename SomeValueType > class SomeClass{ SomeValueType SomeValue; SomeValueType SomeArray[ ArrayLength ]; ... }; templateclass-SomeClass{ SomeValue类型SomeValue; SomeValueType SomeArray[ArrayL
template < int ArrayLength, typename SomeValueType > class SomeClass{
SomeValueType SomeValue;
SomeValueType SomeArray[ ArrayLength ];
...
};
templateclass-SomeClass{
SomeValue类型SomeValue;
SomeValueType SomeArray[ArrayLength];
...
};
例如,如何定义一个扩展了SomeClass
的类,即SomeClass<20,int>
有点像
classmyclass:SomeClass<20,int>{…}代码>正确方式?如果您想要私有继承:
class MyClass : SomeClass < 20, int > //private by default!
{
//...
};
class MyClass : public SomeClass < 20, int >
{
//...
};
classmyclass:SomeClass<20,int>//默认为私有!
{
//...
};
如果您想要公共继承:
class MyClass : SomeClass < 20, int > //private by default!
{
//...
};
class MyClass : public SomeClass < 20, int >
{
//...
};
classmyclass:publicsomeclass<20,int>
{
//...
};
您知道默认情况下这是私有继承吗?使用类MaClass:publicsomeclass{…};拥有公共继承。如果可以通过SomeClass*
删除MyClass
,则还应向SomeClass
添加虚拟析构函数,以确保执行任何其他特定于MyClass的销毁步骤。。。。