• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

undefined reference to

0 głosów
479 wizyt
pytanie zadane 3 czerwca 2019 w C i C++ przez antek97 Nowicjusz (220 p.)
edycja 3 czerwca 2019 przez antek97
klasa cpp
#include "klasa.h"
#include <fstream>
#include <cstdlib>

 baza::baza(char *i, char *n, char *t)
 
{

 cout<<"Wprowadz dane:\n";
 strcpy(this->imie,i);
 strcpy(this->nazwisko,n);
 strcpy(this->telefon,t);
 cout<<"\tImie: "<<this->imie<<"\n";
 cout<<"\tNazwisko.: "<<this->nazwisko<<"\n";
 cout<<"\tTelefon.: "<<this->telefon<< "\n";
};
 baza::~baza()
{
cout << "Usuwanie:\n";
cout<<"\tImie: "<<this->imie<<"\n";
cout<<"\tNazwisko.: "<<this->nazwisko<<"\n";
cout<<"\tTelefon.: "<<this->telefon<< "\n";
};
void baza::wyswietl()
{

 cout<<"\tImie: "<<this->imie<<"\n";
 cout<<"\tNazwisko.: "<<this->nazwisko<<"\n";
 cout<<"\tTelefon.: "<<this->telefon<< "\n";
};

 

klasa.h
#include <iostream>
#include <fstream>
using namespace std;
class baza {
private:
   char imie[10];
     char nazwisko[25];
       char telefon[10];
       public:
             baza(char *i, char *n, char *t);
               ~baza();
               void wyswietl();
};

main.cpp
#include "klasa.h"
#include <iostream>

int main() {
class baza **osoby=NULL;
int i=0, n;
char znak;


cout << "ile osob w bazie : " << endl;
cin >> n;
osoby=new baza *[n];

cout << "1. Pobierz/wprowadz dane" << endl;
cout << "2. Usun dane " << endl;
cout << "3. Wyswietl dane" << endl;
cout << "4. Koniec" << endl;
do
{
    fflush(stdin);
    cout << "Twoj wybor: " << endl;
    cin>> znak;
    switch(znak)
    {
    case '1':


        for(i=0;i<n;i++)
        osoby[i]=new baza("Adam","Kowalski","9399992");

        break;
    case '2':
        for(i=0;i<n;i++){
        delete []  osoby;
        delete osoby [i];

        }
        break;
    case '3':
        for(i=0;i<n;i++){
        osoby[i]->wyswietl();
        }
        break;
    case '4':
        cout << "Koniec" << endl;
        break;
    default:
        cout << "Wybierz ponownie" << endl;
    }
}
while(znak!='4');
delete [] osoby;
return 0;
}

Mam problem na 29,35,41 w main.cpp wywala mi blad tak jak w temacie tylko ze jak dla mnie rzeczy sa zdefiniowane

komentarz 3 czerwca 2019 przez Aisekai Nałogowiec (42,190 p.)
Porozdzielaj ten blok kodu na dwa, bo za cholere nie widać w której linii jest błąd (35 linia, to w tym przypadku załączenie dodatkowych bibliotek)
komentarz 3 czerwca 2019 przez antek97 Nowicjusz (220 p.)
W tej 3 pliku gdzie jest main.cpp wyskakuje blad

1 odpowiedź

0 głosów
odpowiedź 3 czerwca 2019 przez criss Mędrzec (172,570 p.)

Dwa problemy:

  • Plik .h potrzebuje include guards tj.:
    #ifndef KLASA_H_INCLUDED
    #define KLASA_H_INCLUDED
    
    //...
    
    #endif 

     

  • Prawdopodobnie klasa.cpp nie jest kompilowany (nie jest dodany do projektu). To owocuje błędami undefined reference - definicja funkcji nie jest kompilowana 
komentarz 3 czerwca 2019 przez antek97 Nowicjusz (220 p.)
klasa.cpp jest dodana w projekcie

Podobne pytania

0 głosów
2 odpowiedzi 985 wizyt
0 głosów
2 odpowiedzi 818 wizyt
0 głosów
2 odpowiedzi 1,101 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...