Moi.
Olen tehnyt oman funktion ja tallettanut sen erilliseen tiedostoon, miten sitä voisi käyttään koko projektin aluella?
#include "omafunktio.h" // täällä olevaa funktiota
#include "muuta.cpp" //voisi käyttää täällä
#include "muuta2.cpp" // ja täällä
Olen tehnyt oman funktion ja tallettanut sen erilliseen tiedostoon, miten sitä voisi käyttään koko projektin aluella?
#include "omafunktio.h" // täällä olevaa funktiota
#include "muuta.cpp" //voisi käyttää täällä
#include "muuta2.cpp" // ja täällä
Vastaukset 8
Vanhimmat
ei se pure ;-)
tosin voisit noissa *.cpp-tiedostoissa includata omafunktio.h:n.
Kun incluudaan ne noissa molemmissa, niin toi kääntäjä sanoo "function previously defined".
toisessa toimii ok.
ilman incluudaamista ei toimi lainkaan.
Tietenkään?.
tee tällaiset tiedosto:
funktio.cpp
-------------
tänne sijoitat itse funktiosi
funktio_headeri.h
-------------------
tänne sijoitat funktiosi määrittelyn tähän tapaan:
void testiFunkkari(int jotain);
nyt kaikissa haluamissasi cpp tiedostoissa includee tuo funktio_headeri.h niin pitäis toimia.
Tuo mainitsemasi ilmoitus voi johtua siitä että incluudaat saman filun moneen kertaan. Ratkaisu include guard:
http://en.wikipedia.org/wiki/Include_guard
Ja jos tuo funktiosi on c koodia (*.c) tarvitset extern määrityksen, että hommma toimisi C :san kanssa.
Headeriin:
#ifndef INCLUDE_OMAFUNKTIO_H
#define INCLUDE_OMAFUNKTIO_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
int MyFunktio();
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* INCLUDE_OMAFUNKTIO_H */
Niin ja yksi mahdollisuus on jätää headerit pois ja lisätä paikaan jossa funktiota tarvitaan function esittely externillä varustettuna...
Tämähän toimi , thanks
esim.
inline void munfunktio()
{
/* sisältö */
}
inline-funkkari ei ole yhtään sen enemmän globaali kuin muukaan.
:-)