Witam,
Mam problem z przykładowym program z symfonii. Są 3 pliki, wszystkie w jednym katalogu:
- main.cpp
#include <iostream>
using namespace std;
#include "osoba.h"
void prezentacja(osoba);
/*************************************************************/
int main()
{
osoba kompozytor, autor;
kompozytor.zapamietaj("Fryderyk Chopin", 36);
autor.zapamietaj("Marcel Proust", 34);
// wywo³ujemy funkcje, wysy³aj¹c obiekty
prezentacja(kompozytor);
prezentacja(autor);
}
/*************************************************************/
void prezentacja(osoba ktos)
{
cout << "Mam zaszczyt przedstawic panstwu, \n"
"Oto we wlasnej osobie: ";
ktos.wypisz();
}
- osoba.h
#ifndef _osoba_h_
#define _osoba_h_
#include <iostream>
using namespace std;
////////////////// definicja klasy /////////////////////////
class osoba
{
char nazwisko[80];
int wiek;
public:
void zapamietaj(const char * napis, int lata);
//------------
void wypisz()
{
cout << "\t" << nazwisko << ", lat: "
<< wiek << endl;
}
};
/////////////////// koniec definicji klasy ///////////////////
#endif
- osoba.cpp
#include "osoba.h"
#include <cstring>
//*************************************************************
void osoba::zapamietaj(const char * napis, int lata)
{
strcpy(nazwisko, (napis ? napis : "Anonim"));
wiek = lata;
}
I przy próbie kompilacji wyskakuje błąd: undefined reference to 'osoba::zapamietaj(char const*, int)'. Co może być tego przyczyną ? Używam Code::Blocks i kompilatora GNU GCC.