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

wyskakuje mi taki bład i nie wiem jak mam to poprawic :undefined reference to baza error ?

Mały hosting, OGROMNE możliwości
0 głosów
1,101 wizyt
pytanie zadane 12 maja 2019 w C i C++ przez antek97 Nowicjusz (220 p.)
otwarte ponownie 12 maja 2019 przez Arkadiusz Waluk

Czy jest mi ktoś w stanie pomóc dokończyć bo wyrzuca mi problem undefined reference to baza.

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


int main()
{
    int a;
    class baza osoba;
    do
    {
        fflush(stdin);
        printf("Wybierz opcje z menu\n\n1.Wprowadz dane\n2.Zapisz dane na dysk\n3.Pobierz dane z dysku\n4.Wyswietl dane\n5.Koniec\n\n");
        scanf("%d",&a);

        switch(a)
        {
            case 1:
                osoba.pobierz();

            break;
            case 2:
                osoba.zapis();

            break;

            case 3:
                osoba.odczyt();

            break;

            case 4:
                osoba.wyswietl();

            break;

            case 5:
                printf("\nKoniec programu");
            break;

            default:
                printf("\nWybor nie prawidlowy, sprobuj ponownie\n");
            break;
        }

    }
    while(a!=5);


    return 0;
}

 

komentarz 12 maja 2019 przez niezalogowany
edycja 12 maja 2019

to przynajmniej pokarz deklarację klasy baza w "klasa.h" przynajmniej powinieneś mieć coś takiego. Chyba że to masz poniżej zdeklarowane w tym pliku to wtedy to ma sens: "class baza; "

plik klasa.h

class baza {

public:

pobierz();
zapis();
odczyt();
wyswietl();

};

to class baza osoba; raczej nie ma sensu

raczej tak

class baza; - deklaracja klasy;

baza osoba; -  deklaracja obiektu klasy baza;

 

komentarz 12 maja 2019 przez antek97 Nowicjusz (220 p.)

@fisker czy o to chodziło?

#ifndef KLASA_H_INCLUDED
#define KLASA_H_INCLUDED
#include <iostream>
using namespace std;
class baza {
private:
 char imie[10];
 char nazwisko[25];
 char telefon[10];
public:
 void wpisz();
 void wyswietl();
 void zapisz();
 void pobierz();
};


#endif // KLASA_H_INCLUDED

,

komentarz 12 maja 2019 przez niezalogowany

no it co napisałem wyżej zamiast class baza osoba;

wystarczy baza osoba; 

komentarz 12 maja 2019 przez antek97 Nowicjusz (220 p.)
aa okej to zaraz sprawdze czy działa
komentarz 12 maja 2019 przez antek97 Nowicjusz (220 p.)

@fisker,  expected unqualified-id before teraz taki bład jest

komentarz 12 maja 2019 przez antek97 Nowicjusz (220 p.)

@fisker,  prototype for void baza:: wyswietl 

klasa.cpp
#include "klasa.h"
#include <fstream>
#include <cstdlib>
#include <string>

void baza::wpisz()
{
 cout << "Podaj dane\n";
 cout << "\tImie: ";
 cin >> this->imie;
 cout << "\tNazwisko: ";
 cin >> this->nazwisko;
 cout << "\tTelefon: ";
 cin >> this->telefon;
};
void baza::wyswietl()
{
 cout << "Dane osobowe\n";
 ifstream plik;

plik.open("plik.txt", ios::in);
if(plik.good() == true)
{
  cout << "\tImie: " << this->imie << "\n";
  cout <<"\tNazwisko:"<< this->nazwisko << "\n";
  cout <<"\tTelefon :"<< this->telefon << "\n";
}
else
    cout << "Brak danych" << endl;

};
void baza::zapisz()
{
    string linia;
    ofstream plik;

    plik.open("plik.txt", ios::out | ios::app);
    if(plik.good() == true)
    {
        plik << this->imie << endl;
        plik << this->nazwisko << endl;
        plik << this->telefon << endl;
        plik.close();
    }
};
void baza::pobierz()
{

    ifstream plik;

    plik.open("plik.txt", ios::in);
    if(plik.good() == true)
    {
        plik >> this->imie;
        plik >> this->nazwisko;
        plik >> this->telefon;
        plik.close();
    }
    else
        cout << "Plik nie istnieje\n" << endl;
};

 

komentarz 12 maja 2019 przez criss Mędrzec (172,570 p.)

"undefined reference to baza"

To jest cała treść błędu na pewno?

1 odpowiedź

0 głosów
odpowiedź 12 maja 2019 przez niezalogowany
edycja 12 maja 2019

masz literówkę zapis zamiast zapisz

i nie masz zdefiniowanej funkcji odczyt

ale to wszystko mówi kompilator

linia 22 i 27

#ifndef KLASA_H
#define KLASA_H

#endif // KLASA_H

poza tym dałem takie nagłówki w pliku .h

komentarz 12 maja 2019 przez antek97 Nowicjusz (220 p.)
A mógłbys poprawić te błedy?
komentarz 12 maja 2019 przez niezalogowany
#ifndef KLASA_H
#define KLASA_H
#include <iostream>
using namespace std;
class baza {
...................
 void odczyt ();
};

#endif // KLASA_H
....................
void::baza::odczyt()
{
    ;
}

to co na prive

i dodatkowo będziesz chyba musiał zmienić void baza::pobierz() {} żeby wczytywał więcej linijek

https://www.youtube.com/watch?v=w2BQUXf91ZA

24 min

Podobne pytania

0 głosów
0 odpowiedzi 799 wizyt
0 głosów
2 odpowiedzi 932 wizyt
0 głosów
2 odpowiedzi 811 wizyt

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,262 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.

...