Podział na pliki

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

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

int main()
{

    funkcja();
    return 0;
}

hpp.hpp

#ifndef HPP_HPP_INCLUDED
#define HPP_HPP_INCLUDED

void funkcja();

#endif // HPP_HPP_INCLUDED

cpp.cpp

#include <iostream>
#include "hpp.hpp"
using namespace std;
void funkcja()
{
    cout<<"X";
}
1

https://wandbox.org/permlink/mT2CDbGCY2zdUTVP

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

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ą.

0

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

$ 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.

0

Code Blocks. Zamiana nazw nic nie daje.

0

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

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1