Podział na pliki

X9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Chcę by ciało mojej funkcji znajdywało się nie w pliku main, a w osobnym pliku. Zrobiłem 3 pliki, wyskakuje komunikat, "funkcja was not declared in this scope".Funkcja ma przykladowo wypisywac X na ekranie.
main.cpp

Kopiuj
#include <iostream>
#include "hpp.hpp"
using namespace std;

int main()
{

    funkcja();
    return 0;
}

hpp.hpp

Kopiuj
#ifndef HPP_HPP_INCLUDED
#define HPP_HPP_INCLUDED

void funkcja();

#endif // HPP_HPP_INCLUDED

cpp.cpp

Kopiuj
#include <iostream>
#include "hpp.hpp"
using namespace std;
void funkcja()
{
    cout<<"X";
}
matek3005
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 358
1

https://wandbox.org/permlink/mT2CDbGCY2zdUTVP

Przebuduj sobie projekt, bo kod który tu zamieściłeś wydaje się działać.

X9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Masz coś konkretnego na myśli, bo niestety ciągle nie działa. Może błędna ścieżka plików nagłowkowych, ale przy kliknieciu new,file c++ source/c++ header, wydaje mi się, że wybrałem prawidłową.

JV
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 242
0

nie napisałeś w czym to kompilujesz. U mnie działa:

Kopiuj
$ g++ -o main main.cpp cpp.cpp && ./main

może zamień nazwy hpp.hpp, cpp.cpp na lepiej opisujące to co jest w tym module, np. na funkcja.cpp i funkcja.h.

X9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 25
0

Code Blocks. Zamiana nazw nic nie daje.

matek3005
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 358
0

Ten plik nagłówkowy trzymasz w katalogu z pozostałymi plikami źródłowymi?

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

Jakiego IDE używasz, albo lepiej jakiego build managera używasz (jak wygląda plik projektu)?
Zależnie od tego jak wygląda organizacja twojego projektu, to problem leży w czym innym.
Może być to zła lokalizacja pliku nagłówkowego, ale rónie dobrze może być to brak wpisu dla INCLUDE_DIRECTORIES.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.