Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Podział klasy na pliki źródłowe

Ostatnio zmodyfikowano 2011-07-18 11:28
Autor Wiadomość
imralav
Temat założony przez niniejszego użytkownika
Podział klasy na pliki źródłowe
» 2011-07-18 11:11:06
Witam!
Przejdę od razu do kodu, co by nie przedłużać:

Plik "main.cpp"
C/C++
#include "funkcje.hpp"

using namespace std;

int main()
{
    cout << "Hello world!\n";
    ksiazka przygodowa;
    return 0;
}

Plik "funkcje.hpp"
C/C++
#ifndef funkcje_hpp
#include <iostream>
#define funkcje_hpp
class ksiazka;
#endif

Plik "funkcje.cpp"
C/C++
#include "funkcje.hpp"

class ksiazka
{
private:
    int ile_kartek;
};

I na końcu błąd, który wyświetla mi kompilator:

D:\Tom\C++\klasy_w_naglowkowym\main.cpp||In function 'int main()':|
D:\Tom\C++\klasy_w_naglowkowym\main.cpp|8|error: aggregate 'ksiazka przygodowa' has incomplete type and cannot be defined|
D:\Tom\C++\klasy_w_naglowkowym\main.cpp|8|warning: unused variable 'przygodowa'|
||=== Build finished: 1 errors, 1 warnings ===|

I teraz: w czym jest problem? Czy taki właśnie zabieg wciskania klas w pliki źródłowe/nagłówkowe jest w ogóle możliwe?

Pozdrawiam,
imralav.
P-36184
m4tx
» 2011-07-18 11:17:31
Pierwsze co pomyślałem, jak zobaczyłem ten kod, to było: "WTF?!"

Przecież plik .hpp masz od tego, by napisać definicję klasy, a .cpp - żeby napisać definicje metod do niej... Proste...

A tego #include w "funkcje.hpp" zamień miejscem z #define funkcje_hpp.
P-36185
imralav
Temat założony przez niniejszego użytkownika
» 2011-07-18 11:28:07
Jasne, już wszystko rozumiem, dzięki.
Zamykam.
P-36187
« 1 »
  Strona 1 z 1