[C++] Błąd kompilacji (Linker error)


(Teela Pl) #1

Napisałam dzisiaj prosty program i z niewiadomych dla mnie powodów Dev-C++ mi go nie kompiluje. Pojawia mi się błąd:

[Linker error] undefined reference to `potega(int)'

ld returned 1 exit status

Czy ktoś mógłby mi wyjaśnić, gdzie robię błąd?

/*1. Napisz program zadanie1.cpp który po uruchomieniu wczyta liczbę naturalna N i wypisze

N kolejnych potęg 3 (np. dla N = 5 program powinien wypisać ”1 3 9 27 81”).*/


#include 

using namespace std;


void potega(int n);

int n, i;


int main()

{

    cout << "Podaj liczbe: " <
    cin >> n;


    void potega(int n);

    {

         int i=1;

         while(n
                   {

                      i=i*3;

                      i++;

                    }

    }


cout << "Kolejne potegi to: " << endl;

potega (n); 


system("PAUSE");  

}[/code]

(Martini M) #2

Witam,

No błąd wyraźnie mówi co jest nie tak.

Napisałeś deklarację funkcji

void potega(int n)

ale nie napisałeś jej definicji. Deklaracja oznacza, że gdzieś będzie taka funkcja (generalnie symbol), ale nigdzie nie powiedziałeś co ma ona robić. Funkcja nie ma swojego ciała.

Dopisz ciało do tej funkcji i powinno działać.

Powodzenia.

P.S.

Jednak napisałeś ciało funkcji, ale w złym miejscu.

Wydaje mi się, że zrobiłeś błąd polegający na tym, że ciało funkcji napisałeś wewnątrz funkcji main. Przenieś je na zewnątrz.


(Teela Pl) #3

Ok, program się uruchamia, ale nie działa prawidłowo. Ale to już sama naprawię.

Dziękuję za pomoc.