[C++]Gdzie w pętli jest błąd?

int funkcja()

{

    system("cls");

   int (*pok[])() = { funkcja_jeden, funkcja_dwa, funkcja_trzy, funkcja_cztery }; 

    char gora[] = 

       {"===============================================================\n"};

  char brzegi[] = 

       {"| |\r"};

      while(1)

      {

       cout << gora << brzegi

            <<"Witaj w sklepie. Mamy wysoki wybor odzywek. Wybiesz rodzaj:\n"

            <
            <
            <
            <
            <
            <
            cout <<"Twoj wybor :";

            int co;

            cin >> co;

  switch(co)

	     {

		case 0:

		case 1:

                case 2:

                case 3:

			pok[co]();

			break;

		case 9:

			return 0;

			system("cls");

		default:

                system("cls");

                 cout << "Blad, sprobuj ponownie...\n";

			break;

               }


       }   

}

Problem polega na tym, że funkcja reaguje tylko na pierwszą funkcje. Reszta jest traktowana jako błąd… Gdzie popełniłem błąd?

Dodam, że funkcje o nazwach “funkcja_jeden, funkcja_dwa, funkcja_trzy, funkcja_cztery” są zadeklarowane wyżej, i znajdują się w osobnym pliku (przy każdej jest słowo ‘extern’). główne okno jest nazywa się MAIN celowo, gdyż z maina jest uruchamiana właśnie ta funkcja.

z góry dziękuję za pomoc.

w case 9 return na końcu, inaczej nie wywoła cls, ale innych błędów nie widzę i u mnie działa. No może tylko C-stringi robi się raczej wskaźnikami na C-string a nie tablicą, ale to raczej nie ma wpływu… U mnie ten switch działa dobrze i naprawdę nie widzę powodu dlaczego miałby nie działać. A u ciebie wywołuje tylko kiedy wpiszesz 1, tak?

wywołuje funkcję o nazwie “funkcja_jeden”, czyli po naciśnięciu 0. Reszty funkcji nie uruchamia, zwraca “default”

@EDIT

dodam, że fukcje nie chcą się uruchamiać jeżeli są wpisane w pliku oraz gdy są poza nim.

@EDIT 2

Problem rozwiązany. Błąd leżał gdzie indziej. Można zamknąć temat.