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


Anmelden zum Antworten