[C++] Podział na pliki - no such file or directory

dav123
Użytkownik
Użytkownik
Posty: 20
Rejestracja: 3 lip 2013, o 18:22
Płeć: Mężczyzna
Lokalizacja: Lokalizacja
Podziękował: 16 razy

[C++] Podział na pliki - no such file or directory

Post autor: dav123 »

Mam taki bardzo prosty program, który podzieliłem na pliki. Niby wszystko jest dobrze, jednak wyskakuje taki błąd: cannot open include file 'r.hpp': no such file or directory. Dodam, że używam visual studio. Co jest nie tak?

Kod: Zaznacz cały

#ifndef S_HPP
#define S_HPP
int Suma(int,int);
#endif

#ifndef R_HPP
#define R_HPP
int Roznica(int,int);
#endif
int Suma(int x,int y)
{
     return (x+y);
}

int Roznica(int x,int y)
{
     return (x-y);
}
#include "r.hpp"
#include "s.hpp"
#include <iostream>
using namespace std;

int main()
{
    int a,b;
    
    cin>>a;
    cin>>b;
    
    cout<<a<<" + "<<b<<" = "<<Suma(a,b)<<endl;
    cout<<a<<" - "<<b<<" = "<<Roznica(a,b)<<endl;
    return 0;
}
Ostatnio zmieniony 8 wrz 2013, o 20:08 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
dexter90
Użytkownik
Użytkownik
Posty: 391
Rejestracja: 11 lis 2011, o 09:48
Płeć: Mężczyzna
Pomógł: 32 razy

[C++] Podział na pliki - no such file or directory

Post autor: dexter90 »

No chyba z komunikatu jasno wynika co jest nie tak? cannot open include file 'r.hpp': no such file or directory.
dav123
Użytkownik
Użytkownik
Posty: 20
Rejestracja: 3 lip 2013, o 18:22
Płeć: Mężczyzna
Lokalizacja: Lokalizacja
Podziękował: 16 razy

[C++] Podział na pliki - no such file or directory

Post autor: dav123 »

nie można otworzyć pliku r.hpp : nie ma takiego pliku lub katalogu. jednak dopiero uczę się dzielić program na pliki i nie bardzo wiem co jest nie tak, gdyż przykłady w necie są tak samo napisane, jeśli chodzi o konstrukcję. Domyślam się jedynie, że może trzeba jakiś plik utworzyć, do tego pliku wpisać kod funkcji, czy coś i wtedy będzie działało, tylko nigdzie o tym nie jest napisane, gdzie co jak
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

[C++] Podział na pliki - no such file or directory

Post autor: miki999 »

Kod: Zaznacz cały

#include "r.hpp"
#include "s.hpp"
Te dwie linijki oznaczają, że dołączasz do projektu plik r.hpp oraz s.hpp. Jeżeli mówisz kompilatorowi, że dołączasz te pliki, a on nie może ich znaleźć, to wywala błąd - bo co mógłby innego zrobić?

Ty natomiast nie podzieliłeś wcale programu na kilka plików tylko umieściłeś wszystko w jednym.
Tutaj masz pokazany przykład włącznie z grafiką ilustrującą widok projektu: ... lowych/310
AU
AU
97.jpg (10.3 KiB) Przejrzano 330 razy
I to jest dopiero projekt z podziałem na pliki: plik main.c, nazwaPliku.cpp i plik nagłówkowy nazwaPliku.hpp.
U Ciebie powinny być pliki main.cpp, r.cpp, s.cpp i nagłówkowe (headers): r.hpp i s.hpp.
W zależności od środowiska programistycznego widok projektu może wyglądać różnie.

Nawet jeśli poprawisz ten przykład i Ci będzie działać, to polecam zrozumieć co każda z linijek w tym kodzie robi.


Pozdrawiam.
dav123
Użytkownik
Użytkownik
Posty: 20
Rejestracja: 3 lip 2013, o 18:22
Płeć: Mężczyzna
Lokalizacja: Lokalizacja
Podziękował: 16 razy

[C++] Podział na pliki - no such file or directory

Post autor: dav123 »

mam 3 klasy. jedna bazowa pozostałe pochodne. w programie jest też zastosowany polimorfizm. czy da się te 3 klasy, podzielić na 3 pliki, 1 plik = 1 klasa.
próbowałem to zrobić tak ale błędy wyskakują

//klasa.h

Kod: Zaznacz cały

#ifndef klasa_h
#define klasa_h

class nazwaKlasy{
public:
	virtual int fun1(int k, int l, int m, int n, char pole[10][10]);
};
//klasa.cpp

Kod: Zaznacz cały

#include "klasa.h"
int nazwaKlasy:: fun1(argumenty){
//ciało fun1
}

#endif
tak samo z klasą 2 i 3.

Albo jak w jeden plik te 3 klasy umieszczę to wyskakuje taki błąd: cannot open C:... for writing. Wiem co to znaczy ale nie wiem co zrobić żeby błędu nie było

Tak samo wyskakują mi błędy jeśli chcę w pliku umieścić szablon.
Robię to tak

Kod: Zaznacz cały

//szablon.h
#ifndef szablon_h
#define szablon_h

template<class T1, class T2>
void fun1 (T1 dm, T2 dd, int k, int l, int m, int n, char pole[10][10]);
#endif
// szablon.cpp
#include "szablon.h"
template<class T1, class T2>
void fun1 (T1 dm, T2 dd, int k, int l, int m, int n, char pole[10][10]){
//ciało fun1
}
Czy klasy , szablony jakoś inaczej się dzieli na pliki?
ODPOWIEDZ