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

Klasy - początek

Ostatnio zmodyfikowano 2012-09-26 17:51
Autor Wiadomość
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
C/C++
#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
C/C++
#include "osoba.h"
#include <cstring>

void osoba::zapametaj( const char * napis, int lata )
{
    strcpy( nazwisko,( napis ? napis: "Anonim" ) );
    wiek = lata;
}
osoba.h
C/C++
#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 // OSOBA_H
P-65579
DejaVu
» 2012-09-26 17:08:31
Musisz utworzyć projekt i wrzucić do niego wszystkie pliki *.cpp (*.hpp opcjonalnie też można).
P-65580
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 ?
P-65582
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
P-65583
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).
P-65584
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.
P-65585
DejaVu
» 2012-09-26 17:31:26
Lenistwo szukania w Googlach woła o pomstę do nieba...
http://cpp0x.pl/kursy/Kurs-C++ /Dzielenie-kodu-na-kilka-plikow-zrodlowych/310
P-65586
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ś.
P-65590
« 1 »
  Strona 1 z 1