Jag håller på att göra ett litet program i C++. Jag har en fil som inehåller WinMain funktionen osv. Nu skulle jag vilja lägga till ytterligare filer i projektet, inte class filer utan helt valiga filer för att få en snyggare struktur i mitt program. Hur kan jag göra detta i VC++ och hur kommunicerar jag med mina andra .cpp filer? Kan tänka mig att jag ska använda header filer här men vet inte riktigt hur jag ska använda dem. Det här är besvarat tidigare i forumet, men jag kan ge en snabb förklaring.Nybörjarfråga om C++
//HenrikSv: Nybörjarfråga om C++
Du vill inte ha klasser, utan köra funktionsorienterat?
Okej, då bör du för det första använda namnrymder. Sen är strukturen så här: funktionsdeklarationer i en headerfil, funktionsdefinitioner i en källfil. Filnamnen bör förutom filändelsen vara lika. Vilken filändelse man väljer är en smaksak och en konventionsfråga.
headern kan t.ex. vara .h .hpp .hh, och källan .c .cpp .cc.
VC++ har .h resp. .cpp, om jag inte minns fel.
En uppsättning kan alltså t.ex. se ut så här:
//funktion.h
namespace funkt
{
void funktion1 (double);
double funktion2 (int);
//...
}
//funktion.cpp
namespace funkt
{
void funktion1 (double d)
{
std::cout << d*d+d;
}
double funktion2 (int)
{
//...
}
//...
}
Det du nu inkluderar i dina egna filer är bara funktion.h.
#include "funktion.h"
int main()
{
//...
funkt::funktion1(2.6);
double d=funkt::funktion2();
//...
}
För att få in själva koden i programmet använder du länkaren, men i VC++ och många andra utvecklingsmiljöer sköts det automatiskt så länge som filerna är med i projektet.
PS. Det finns ett undantag från regeln att man har definitionerna i .cpp-filen, och det är s.k. inline-funktioner. Om man vet vad det är för något förstår man varför.