problem z klasą

Witam. Program służy do spisywania samochodow. Składa się on z trzech plików: main.cpp, samochod.h, samochod.cpp.
Pojawia się błąd:
undefined reference to `samochod::dodaj_samochod()'|
||error: ld returned 1 exit status|
Proszę o pomoc w usunięciu błędu.

//MAIN:
#include <iostream>
#include "samochod.h"

using namespace std;

int main()
{
samochod s1;
s1.dodaj_samochod();
s1.wypisz();

return 0;
}


//SAMOCHOD.H:
#include <iostream>
using namespace std;

class samochod
{
public:
string marka;
int rocznik;

void dodaj_samochod();
void wypisz();
};


//SAMOCHOD.CPP:
#include <iostream>
#include "samochod.h"

using namespace std;

void samochod::dodaj_samochod()
{
cout<<"DODAWANIE NOWEGO SAMOCHODU: "<<endl;
cout<<"podaj marke: ";
cin>>marka;
cout<<"podaj rocznik: ";
cin>>rocznik;

}
void samochod::wypisz()
{
if(marka=="fiat") cout<<marka<<'\t'<<rocznik<<" rocznik";
else if(marka=="bmw") cout<<marka<< rocznik<<" rocznik";
else if(marka=="wv") cout<<marka<<rocznik<<" rocznik";
}


Last edited on
How are you compiling & linking? What is the command you compile with? Are you sure that samochod.cpp is being compiled?
Last edited on
samochod.cpp się nie kompiluje
At first sight, it seems there are not guard blocks in your header file.
Please, let us know if this version compiles or not:

Samochod.hpp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef SAMOCHOD_HPP
#define SAMOCHOD_HPP


#include <string>


class Samochod {
public:
    std::string marka;
    int rocznik;

    Samochod() = default;

    void dodaj_samochod();
    void wypisz();
};


#endif // SAMOCHOD_HPP 



Samochod.cpp:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "Samochod.hpp"
#include <iostream>


void Samochod::dodaj_samochod()
{
    std::cout << "Dodawanie nowego samochodu:\n"
                 "podaj marke: ";
    std::cin >> marka;
    std::cout << "Podaj rocznik: ";
    std::cin >> rocznik;
}


void Samochod::wypisz()
{
    if     (marka == "fiat") { std::cout << marka << '\t' << rocznik << " rocznik\n"; }
    else if(marka ==  "bmw") { std::cout << marka << rocznik << " rocznik\n"; }
    else if(marka ==   "wv") { std::cout << marka << rocznik << " rocznik\n" ; }
}



main.cpp:
1
2
3
4
5
6
7
8
9
10
11
12
#include "Samochod.hpp"
#include <iostream>


int main()
{
    Samochod s1;
    s1.dodaj_samochod();
    s1.wypisz();

    return 0;
}

Topic archived. No new replies allowed.