2011-01-31 20 views
1

が悪いですね..しかし、あなたはSomeClass < 20, int >テンプレートから継承する必要がある場合、どのようにテンプレートクラスから継承しますか?

あるSomeClassを展開し、クラスceae例えばどのように行う

template < int ArrayLength, typename SomeValueType > class SomeClass{ 
    SomeValueType SomeValue; 
    SomeValueType SomeArray[ ArrayLength ]; 
    ... 
}; 

を持つことが

class MyClass : SomeClass < 20, int > {...};正しい方法のようなものでしょうか?

+2

を使用すると、これはデフォルトでprivate継承であることを知っていますか?使用クラスMaClass:public SomeClass <20,int> {...};公の継承を受けること。 – Drahakar

+2

'SomeClass * 'を介して' MyClass'を削除することができる場合は、 'SomeClass'に仮想デストラクタを追加して、追加のMyClass特有の破壊ステップが確実に実行されるようにする必要があります。 –

答えて

3

あなたはprivate継承したい場合:

class MyClass : SomeClass < 20, int > //private by default! 
{ 
    //... 
}; 

を使用すると、パブリック継承したい場合:

class MyClass : public SomeClass < 20, int > 
{ 
    //... 
}; 
関連する問題