tirou Temat założony przez niniejszego użytkownika |
Klasy - początek » 2012-09-26 17:06:52 Witam, wlasnie zacząłem się uczyć klas, napisałem pewien program, jednak nie moge dojsc dlaczego (uczę się z symfonii więc nie mam kogo spytać) pojawia się problem następujący: program main.cpp tak jakby nie widzi dołączonego do niego pliku osoba.cpp (jest oczywiscie jeszcze header osoba.h w którym mam całą definicję klasy). Oto kody: main.cpp #include <iostream> #include "osoba.h" using namespace std; void prezentacja( osoba ); int main() { osoba kompozytor, autor; kompozytor.zapametaj( "Fryderyk Szopen", 36 ); autor.zapametaj( "Marcel Proust", 34 ); prezentacja( kompozytor ); prezentacja( autor ); } void prezentacja( osoba ktos ) { cout << "Mam zaszczyt przedstawic panstwu, \nOto on we wlasne osobie: "; ktos.wypisz(); } osoba.cpp #include "osoba.h" #include <cstring>
void osoba::zapametaj( const char * napis, int lata ) { strcpy( nazwisko,( napis ? napis: "Anonim" ) ); wiek = lata; } osoba.h #ifndef OSOBA_H #define OSOBA_H
#include <iostream> using namespace std;
class osoba { char nazwisko[ 80 ]; int wiek; public: void zapametaj( const char * napis, int lata ); void wypisz() { cout << "\t" << nazwisko << ",lat: " << wiek << endl; } }; #endif
|
|
DejaVu |
» 2012-09-26 17:08:31 Musisz utworzyć projekt i wrzucić do niego wszystkie pliki *.cpp (*.hpp opcjonalnie też można). |
|
tirou Temat założony przez niniejszego użytkownika |
» 2012-09-26 17:15:56 Tzn codeBlocks sam w projekcie tworzy podfoldery: src oraz include gdzie trafiaja headery i te załączniki headerów (nie wiem jak je nazwac). Aczkolwiek dla pewnosci recznie dodatkowo skopiowalem pozostałe pliki w miejsce gdzie jest plik main.cpp . Bo nie wiem jeszcze jak to jest ze sciezkami tych plików.
Mimo tego skopiowania w pliku: osoba.cpp wyswietla mi się błąd przy deklaracji: #include "osoba.h" : no such file or directory ? |
|
m4tx |
» 2012-09-26 17:18:20 To, że wrzuciłeś pliki do folderu src/, to nie znaczy jeszcze, że są kompilowane. :) Musisz je włączyć do kompilacji (W PPM => Build options jak się nie mylę). Mimo tego skopiowania w pliku: osoba.cpp wyswietla mi się błąd przy deklaracji: #include "osoba.h" : no such file or directory ? |
No cóż - osoba.cpp i osoba.h to wbrew pozorom nie ten sam plik ;p |
|
DejaVu |
» 2012-09-26 17:21:56 @up: nie trzeba wchodzić w żadne build options. Po prostu tworzy się projekt i dorzuca się do niego pliki żeby były widoczne w drzewku projektu. Co do błędu - komunikat jest jasny: "nie znaleziono pliku" - wniosek: plik znajduje się w innym miejscu niż wskazałeś (bądź wcale nie masz takiego pliku na dysku). |
|
tirou Temat założony przez niniejszego użytkownika |
» 2012-09-26 17:27:21 "Build file" <- tak sie opcja nazywa. W main.cpp ; osoba.h przy wlaczeniu: Build file pojawia się: nothing to be done, wiec zakladam, że wszystko jest ok, przy próbie "zbudowania" osoba.cpp pojawiają się wczesniej wymienione błędy. Jeśli chodzi o ścieżkę dostępu to może skoro CodeBlocks automatycznie stworzył mi header w osobnym folderze include to zamiast w programie głównym #include "osoba.h" powinno byc: #include "include/osoba.h" . Tak samo w pliku osoba.cpp powinno byc: #include ".../include/osoba.h" ?? Czy ścieżka dostępu jest znajdywana automatycznie moze?
@edit/
oto chodziło. |
|
DejaVu |
» 2012-09-26 17:31:26 |
|
tirou Temat założony przez niniejszego użytkownika |
» 2012-09-26 17:51:29 Cóż, szukałem nie w google tylko tutaj w serwisie pod hasłem: Klasy jednak znalzłem w kursie tylko podstawy. Pozatym nie sądziłem, iż to będzie problem z dzieleniem plików.
Mogę jedynie podziękować za ten kawałek, który mi podesłałeś. |
|
« 1 » |