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

Problem "Undefinded reference to"

0 głosów
118 wizyt
pytanie zadane 29 czerwca 2016 w C i C++ przez sparklemo7ion Nowicjusz (200 p.)

main.cpp:

#include <iostream>
#include <cstdlib>
#include "kalk.h"
using namespace std;

int main()
{
    Dzialanie dz [100];
for (int i =0; ; i++)
{
    dz[i].wybor();
}

return 0;
}

 

kalk.h:

#include <iostream>
using namespace std;

class Dzialanie{
    public:
int a,b,wynik;

int dodawanie ();
int odejmowanie ();
int mnozenie ();
int dzielenie ();
int modul();
void wybor(); //wybiera opcje dzialania
};

kalk.cpp:

#include <iostream>
#include <cstdlib>
#include "kalk.h"
using namespace std;

int Dzialanie::dodawanie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;

    return a+b;
}

int Dzialanie::odejmowanie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a-b;
}

int Dzialanie::mnozenie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a*b;
}

int Dzialanie::dzielenie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a/b;
}

int Dzialanie::modul()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a%b;
}

void Dzialanie::wybor()
{
    int co;
    cout <<"CO CHCESZ ZROBIC?"<<endl;
    cout <<"***********************************************"<<endl;
    cout <<"1.Dodawanie"<<endl;
    cout <<"2.Odejmowanie"<<endl;
    cout <<"3.Mnozenie"<<endl;
    cout <<"4.Dzielenie"<<endl;
    cout <<"5.Modul"<<endl;
    cout <<"0.Wyjscie"<<endl;
    cout <<"***********************************************"<<endl;
    cin>>co;

    switch ( co )
    {
    case 1:
        dodawanie();
        break;

    case 2:
        odejmowanie();
        break;

    case 3:
        mnozenie();
        break;

    case 4:
        dzielenie();
        break;

    case 5:
        modul();
        break;

    case 0:
        exit(0);
    }
}

Dopiero zacząłem programować obiektowo i postanowiłem sobie zrobić jakiś mały kalkulator, ale natrafiam na błąd, który nie wiem skąd się bierze "undefined reference to `Dzialanie::wybor()' "

I jeszcze jedno.. jak użyć wektora, albo przynajmniej wskaźnika, żeby zrobić dynamiczną tablicę na obiekt? 

Pozdrawiam

2 odpowiedzi

0 głosów
odpowiedź 29 czerwca 2016 przez niezalogowany
Dodałeś pliki do projektu?
komentarz 29 czerwca 2016 przez sparklemo7ion Nowicjusz (200 p.)
Myślalem, że wystarczy zaincludować plik nagłówkowy i mieć pliki w tym samym folderze :P

Chyba wiem o co Ci chodzi no i klikam Project -> Add files i nic się nie dzieje jak to klikne, żadne okno się nie pojawia.
komentarz 29 czerwca 2016 przez niezalogowany
Spróbuj zrestartować IDE i jeszcze raz dodać pliki do projektu.
komentarz 29 czerwca 2016 przez sparklemo7ion Nowicjusz (200 p.)
Dalej nic.
komentarz 29 czerwca 2016 przez niezalogowany
Nie pomogę Ci bo z Code Blocks już od dawna nie miałem styczności a po zapytaniu wujka Google, nie znalazłem nikogo z takim problemem jak ty.
komentarz 30 czerwca 2016 przez sparklemo7ion Nowicjusz (200 p.)
Ok, dzięki za próbe:)
0 głosów
odpowiedź 29 czerwca 2016 przez MichuDev Pasjonat (20,360 p.)
Jakiego kompilatora i IDE używasz. Jeżeli kompilator to GCC (z lini poleceń) to upewnij się że podałeś wszystkie pliki z rozszerzeniem .cpp:

g++ main.cpp kalk.cpp -Wall -Wextra -std=c++14
komentarz 2 lipca 2016 przez sparklemo7ion Nowicjusz (200 p.)
Zmieniłem, dalej to samo :/
komentarz 2 lipca 2016 przez MichuDev Pasjonat (20,360 p.)

KOD: Zwracasz wynik, a go nie wypisujesz, program bez sensu, jak użytkownik ma się dowiedzieć jaki jest wynik ? Użyje debuggera ? Nawet jak usuniesz jego symbole z pliku korzystając ze strip <nazwa pliku> w gcc ? Chyba oczekujesz od programu odpowiedzi ?

Poprawiony plik kalk.cpp:

#include <iostream>
#include <cstdlib>
#include "kalk.h"
using namespace std;

int Dzialanie::dodawanie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;

    return a+b;
}

int Dzialanie::odejmowanie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a-b;
}

int Dzialanie::mnozenie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a*b;
}

int Dzialanie::dzielenie()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a/b;
}

int Dzialanie::modul()
{
    cout<<"Podaj 2 liczby: ";
    cin>>a;
    cin>>b;
    return a%b;
}

void Dzialanie::wybor()
{
    int co;
    cout <<"CO CHCESZ ZROBIC?"<<endl;
    cout <<"***********************************************"<<endl;
    cout <<"1.Dodawanie"<<endl;
    cout <<"2.Odejmowanie"<<endl;
    cout <<"3.Mnozenie"<<endl;
    cout <<"4.Dzielenie"<<endl;
    cout <<"5.Modul"<<endl;
    cout <<"0.Wyjscie"<<endl;
    cout <<"***********************************************"<<endl;
    cin>>co;

    switch ( co )
    {
    case 1:
        cout << "Wynik: " <<  dodawanie() << endl;
        break;

    case 2:
        cout << "Wynik: " << odejmowanie() << endl;
        break;

    case 3:
        cout << "Wynik: " << mnozenie() << endl;
        break;

    case 4:
        cout << "Wynik: " << dzielenie() << endl;
        break;

    case 5:
        cout << "Wynik: " << modul() << endl;
        break;

    case 0:
        exit(0);
    }
}

Mnie wszystko działa, może dać ci screeny ?

komentarz 2 lipca 2016 przez sparklemo7ion Nowicjusz (200 p.)
Tak, wiem przegapiłem to, ale poprawiłem kod praktycznie zaraz po wrzuceniu na forum. A błędy dalej wysypuje.
komentarz 2 lipca 2016 przez sparklemo7ion Nowicjusz (200 p.)
Może nie bawić się, tylko zmienić IDE?
komentarz 2 lipca 2016 przez sparklemo7ion Nowicjusz (200 p.)
W DevC++ to samo.. Nie rozumiem już...

https://zapodaj.net/5942a5c5dd51e.jpg.html

Podobne pytania

0 głosów
1 odpowiedź 52 wizyt
pytanie zadane 9 lipca 2018 w JavaScript, jQuery, AJAX przez cepekLP Nowicjusz (120 p.)
0 głosów
1 odpowiedź 70 wizyt
pytanie zadane 27 października 2017 w C i C++ przez Dawid Kruk Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 114 wizyt
pytanie zadane 12 lipca 2016 w C i C++ przez Wisien Nowicjusz (170 p.)
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

65,647 zapytań

112,273 odpowiedzi

236,898 komentarzy

46,641 pasjonatów

Przeglądających: 224
Pasjonatów: 13 Gości: 211

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...