2011-04-17 18 views
7

Sorunumun bir çözümü için etrafa baktım ve döngüsel referanslar ve ad alanı sorunları hakkında çok şey buldum (benim durumumda geçerli değil) ama sahip olduğum problem gibi bir şey değil.C++: "hata: şablon sınıfını miras alırken" {'token "önce beklenen sınıf adı

Bir şablon sınıfı tanımlanmış ve matematik/matrix.h uygulanan vardır: Başka bir şablon sınıfı tanımlanmış ve matematik uygulamış

template<class T> 
class Matrix 
{ 
public: 
    // constructors, destructors and what not... 
}; 

/vector.h

#include <maths/matrix.h> 

template<class T> 
class Vector : public Matrix 
{ 
public: 
    // constructors, destructors and what not... 
}; 

alıyorum bu gerçekten "beni gerçekten rahatsız ediyor.". Matrix.h ve vector.h ile matematik alt klasöründe olmak hiçbir şey yapmam, çünkü matrix.h'yi uygulamanın diğer bölümlerinde sorunsuz kullanabiliyorum. Matrix ile tempold bir sınıf olmanın bir şeye sahip olduğunu düşünüyorum çünkü Vector'i bir tempolu olmayan sınıfın (örneğin, SomeClass.h) bir alt sınıfını oluşturduğumda her şey tamamlıyor. İki şey kaçırıyorsun

template<class T> 
class Vector : public Matrix<T> 
{ 
    … 
}; 

cevap

11

yardımcı olabilecek herkese

çok teşekkürler Sen değil, sadece Matrix, Matrix<T> somut sınıfın, yani gelen miras gerekir.

template<typename T> 
class Vector : public Matrix <T> //<----- first : provide the type argument 
{ 

}; //<-------- second : semi-colon (same from Matrix class also) 
+0

OMG Böyle bir çaylak değilim! teşekkürler bir tedavi çalıştı :) –

5

: :)

+0

teşekkürler çok çalıştı :) –

İlgili konular