Hello,

I'm trying to learn C++.
For the moment, I'm exploring classes and objects.
I want to split my program into 3 files: DBus.cpp - bus.h - bus.cpp
With Geany this doesn't work (mingw32/8.3). It only compiles, if I
integrate bus.cpp into bus.h.
I tried the same with Visual Studio (CMake) and it compiles the
splittend files without problems.

I want generally use Geany, because VS is too complex for learning, not
uncomplicated to handle.
What can I do?

 Below the 3 Files: DBus.cpp - bus.h - bus.cpp and the error file.
---------DBus.cpp------------------
#include "bus.h"
#include <iostream>

int main() {
    DBus dbus1(130, 25000, "rot");
    DBus dbus2(180, 40000, "blau");
    dbus1.ausgabeDBus();
    dbus2.ausgabeDBus();
}
---------bus.h--------------------------
#pragma once
#include <string>
#include <iostream>

class DBus {
  private:
      int kw;
      int preis;
      std::string farbe;
  public:
      DBus(int KW, int Pr, std::string Far);
      void ausgabeDBus();
      int getPreis();
      std::string getFarbe();
};
----------bus.cpp--------------------------
#include <iostream>
#include "bus.h"

DBus::DBus(int KW, int Pr, std::string Far) {
    kw = KW;
    preis = Pr;
    farbe = Far;
}
void DBus::ausgabeDBus() {
    std::cout << "der " << farbe << "e Campingbus hat " << kw << " KW
und kostete " << preis << " Euro" << std::endl;
}
int DBus::getPreis() {
    return preis;
}
std::string DBus::getFarbe() {
    return farbe;
}
-------------error----------------------
g++ -Wall -o "DBus"  "DBus.cpp" (im Verzeichnis:
C:\Users\hz\Documents\C++\Class)
C:/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
C:\Users\hz\AppData\Local\Temp\ccrZlTnk.o:DBus.cpp:(.text+0x54):
undefined reference to `DBus::DBus(int, int,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >)'
C:/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
C:\Users\hz\AppData\Local\Temp\ccrZlTnk.o:DBus.cpp:(.text+0xaf):
undefined reference to `DBus::DBus(int, int,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >)'
C:/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
C:\Users\hz\AppData\Local\Temp\ccrZlTnk.o:DBus.cpp:(.text+0xd3):
undefined reference to `DBus::ausgabeDBus()'
C:/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
C:\Users\hz\AppData\Local\Temp\ccrZlTnk.o:DBus.cpp:(.text+0xdf):
undefined reference to `DBus::ausgabeDBus()'
collect2.exe: error: ld returned 1 exit status
Kompilierung fehlgeschlagen.


_______________________________________________
Users mailing list -- users@lists.geany.org
To unsubscribe send an email to users-le...@lists.geany.org

Reply via email to