ich folgende Template-Klassen verwende:C++, Template-Variable in nicht Template-Klasse
template <class T>
class Point2D
{
private:
T x;
T y;
...
};
template <class T>
class Point2D;
template <class T>
class Line{
private:
Point2D <T> *start;
Point2D <T> *start;
....
};
Wenn ich ein Objekt Linie erstellen möchten, ist es notwendig Typ des Punktes und Art der Linie
zu schreibenint main
{
Point2DC<double> p1(0,0);
Point2DC<double> p2(10,10);
Line<double> l(&p1,&p2);
...
}
ich finde es ziemlich sinnlos ... Wenn die Punkte doppelt sind, so Linie muss auch doppelt so hoch sein ... Ist es möglich, nur Zeiger in der Klasse Line templatize und tun templatize nicht alle Klasse, etwas wie das
template <class T>
class Point2D;
class Line{
private:
template <class T>
Point2D <T> *start;
Point2D <T> *start;
....
};
und verwenden
int main
{
Point2D<double> p1(0,0);
Point2D<double> p2(10,10);
Line l(&p1,&p2);
...
}
Wie Template-Klasse Point2DC definiert ist? –
Es gab einen Fehler, ich habe es behoben. – MMS