Templates
-
Hallo ich habe bitte eine Frage:
Ich habe ein KlassenTemplate Graph<int n>. In der Main möchte ich jetzt dieses Template mit mit einen Wert belegen denn ich zur Laufzeit im Programm abfrage.[cpp]
int main(void)
{
unsigned int menu = 911;
//int n;cout << "Implementierung eines Spanning Tree \n \n" << endl;
cout << "Anzahl der Ecken des Graphen : "; cin >> n;
cout << "\n" << endl;while(menu != 0)
{
Graph<n> graph;
if (menu == 911)
{
cout << " ----------------------------------" << " ----------------------------------" << endl;
cout << "| (1) : insertEdge |" << "| (5) : spanningTree |" << endl;
cout << "| (2) : adjacent |" << "| (6) : displayTree |" << endl;
cout << "| (3) : displayEdges |" << "| (7) : Startwerte |" << endl;
cout << "| (4) : printbinary matrix |" << "| (0) : Programm Beenden |" << endl;
cout << " ----------------------------------" << " ----------------------------------" << endl;
cout << " >> Hinweis - 911 holt dieses Menue zurueck / 999 Bildschirm loeschen << \n" << endl;
}
if (menu == 999)
system( "cls" );do
{
cin.sync(); cin.clear();
cout << "Eingabe > ";
cin >> menu;
}
while((menu > 7 || menu < 0) && menu != 911 && menu != 999);
cout << endl;unsigned int i;
unsigned int j;
unsigned int root;switch(menu)
{
case 1:
cin.sync(); cin.clear();
cout << "Einfuegen einer Kante: \n";
cout << "Eingabe (i) : "; cin >> i; cout << "Eingabe (j) : "; cin >> j;
cout << "\n" << endl;
try
{
graph.insertEdge(i,j);
}
catch (Graph::BadVertex &bv)
{
cout << "|| BadVertex Exception || \nEs gibt diese Ecke nicht im Graph:\n";
cout << "(i) : " << bv.getI() << "\n";
cout << "(j) : " << bv.getJ() << "\n\n";
}[cpp]
Wieso funktioniert das nicht. Bei den dickmarkierten Punkten gibt es die Problemfälle.
Danke
Pejtr
-
a) Verwende [cpp]-Tags
b) Templateargumente müssen immer zur Compilezeit feststehen.
c) Meine Kristallkugel ist kaputt und ich hab von Graph<> deshalb keinen Schimmer