Cześć!
Ostatnio zacząłem uczyć się klas i napotkałem problem : undefined reference to 'Nowa_ocena::dodaj_ocene()'.
Chciałbym poznać przyczynę tego błędu bo jak oglądałem filmu u pana Zelenta lub inne filmiki na yt nie widziałem różnic w kodzie.
Kod maina:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include "klasy.h"
using namespace std;
void odczytaj_oceny()
{
fstream plik;
plik.open("oceny.txt", ios::in);
string linia;
string oceny[500];
while(getline(plik, linia))
{
cout<<linia<<endl;
}
cout<<endl;
plik.close();
}
int menu(int option)
{
cout<<"Menu:"<<endl;
cout<<"1.Nowa ocena"<<endl;
cout<<"2.Koniec"<<endl;
cout<<"Podaj numer(1-2) opcji: ";
cin>>option;
return option;
}
int wybor(int opcja)
{
if(opcja==1)
{
int ile_ocen;
cout<<"Podaj ile ocen chesz dodac: "<<endl;
cin>>ile_ocen;
Nowa_ocena oceny[500];
for(int i=0; i<ile_ocen; i++)
{
oceny[i].dodaj_ocene();
fstream plik;
plik.open("oceny.txt", ios::out | ios::app);
plik<<"Twoja ocena to: "<<oceny[i].ocena<<", a jej waga to <<oceny[i].waga_oceny<<" z przedmiotu "<<oceny[i].przedmiot<<" za "<<oceny[i].za_co<<endl;
plik.close();
}
system( "cls" );
odczytaj_oceny();
int option, opcja;
opcja=menu(option);
wybor(opcja);
}
else if(opcja==2)
{
cout<<endl<<"Do zobaczenia! :)"<<endl;
exit(0);
}
else{
system("cls");
cout<<"Blad"<<endl;
odczytaj_oceny();
int option, opcja;
opcja=menu(option);
wybor(opcja);
}
return opcja;
}
int main()
{
odczytaj_oceny();
int option, opcja;
opcja=menu(option);
wybor(opcja);
return 0;
}
Kod klasy.h :
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
class Nowa_ocena
{
public:
string przedmiot;
string za_co;
float ocena;
int waga_oceny;
void dodaj_ocene();
};
Kod klasy.cpp :
#include <iostream>
#include <fstream>
#include <cstdlib>
#include "klasy.h"
using namespace std;
void Nowa_ocena::dodaj_ocene()
{
cout<<"Podaj ocene"<<endl;
cin>>ocena;
cout<<"Podaj wage oceny"<<endl;
cin>>waga_oceny;
cout<<"Podaj przedmiot"<<endl;
cin>>przedmiot;
cout<<"Podaj temat oceny"<<endl;
cin>>za_co;
}