Ahora si que ya no me entero, entonces lo puedo eliminar? O hace que el ejecutable sea más rápido o algo?
Lo puedes eliminar y no lo debes eliminar.
Tu imagínate que tienes un gran proyecto que tardase en compilar 20 minutos. Si cada vez que tienes que cambiar una línea de código te tiras 20 minutos no llegas a ninguna parte.
Lo que se hace, es dividir el proyecto en varios archivos cpp. Cada archivo cpp se compila de forma
autonóma, después se unén los archivos compilados (linker) y se forma el programa.
De este modo que si cambias una línea de código solo tendrías que compilar ese fichero cpp. Los archivos cpp compilados suelen tener extensión .o. No hay peligro en eliminarlos pero después tendrías que volver a compilarlos desde 0.
¿Cómo se hace un proyecto con varios archivos? En Codeblocks está chupado (File -> New Emply file y lo guardas con extensión .cpp). He aquí un ejemplo con 3 archivos (uno de cabecera hpp):
Main.cpp#include <iostream>
#include <map>
#include <vector>
#include <sstream>
// Archivo de declaraciones
#include "Funciones.hpp"
using namespace std;
typedef void (*Puntero_A_Funcion)(void);
int main()
{
void (*Funcion)(void); // Puntero a funcion sin argumentos
string Mensaje;
map<string,Puntero_A_Funcion> Comandos;
vector<string> texto;
string str;
Comandos["write"] = Escribir;
Comandos["copy"] = Copiar;
Comandos["cut"] = Cortar;
Comandos["delete"] = Borrar;
Comandos["Destroy"] = Destruir;
Comandos["Kill"] = Matar;
getline(cin, str);
stringstream is(str);
while(is >> str) texto.push_back(str);
cout <<"Las palabras que pusiste son: " << endl;
for (int i = 0; i < texto.size(); i++)
cout << i + 1 << ". " << texto[i] << endl;
cout << endl;
for (int i = 0; i < texto.size(); i++)
{
Funcion = Comandos[texto[i]]; // Obtengo el puntero a la funcion correspondiente
if (Funcion) // Si existe la funcion
Funcion(); // llamar a la funcion
else
cout<<"Error, no existe el comando introducido: "<<texto[i]<<endl;
}
return 0;
}
Funciones.hpp// Se le dice al compilador que este archivo es de "inclusión única"
#pragma once
// Prototipos de las funciones
void Copiar();
void Escribir();
void Cortar();
void Borrar();
void Destruir();
void Matar();
Funciones.cpp// Incluimos el archivo con los prototipos
#include "Funciones.hpp"
// Definiendo las funciones
void Escribir()
{
cout<<"Has escrito write"<<endl;
}
void Cortar()
{
cout<<"Has escrito cortar"<<endl;
}
void Copiar()
{
cout<<"Has escrito copiar"<<endl;
}
void Borrar()
{
cout<<"Has escrito borrar"<<endl;
}
void Destruir()
{
cout<<"has escrito destruir"<<endl;
}
void Matar()
{
cout<<"has escrito matar"<<endl;
}