[c++] Problem z wywołaniem podprogramu

0

#include <iostream>

using namespace std;

template <class typ="typ">
struct kolejka
{
int r;
typ *d;
};

template <class typ="typ">
void przygotuj (kolejka<typ> *w)
{
w->r=0;

}

int main()
{
kolejka <int> a;
przygotuj (kolejka<int> a);
return 0;
}

wyświetla się błąd:
main.cpp|60|error: expected primary-expression before 'a'|

1

Ale co to niby jest? o_O
Jak wywołujesz metodę to podajesz argumenty a nie jakieś dziwne deklaracje argumentów. Więc nie:

przygotuj (kolejka<int> a);

a po prostu

przygotuj(a);

Ale to nadal jest źle, bo funkcja przygotuj wymaga wskaźnika do kolejki a nie kolejki, więc:

przygotuj(&a);

albo:

kolejka<int>* a = new kolejka<int>();
przygotuj(a);

1 użytkowników online, w tym zalogowanych: 0, gości: 1