Mi chiedo come il compilatore (o il preprocessore) includa le intestazioni. Ho tre file. La prima è intestazione.h, seconda first.cpp < - e c'è #include <iostream>
, la terza < - contiene anche #include <iostream>
.
header.h:
#ifndef HEADER_H_
#define HEADER_H_
struct Student
{
std::string imie;
int ocena;
};
void foo();
#endif
first.cpp:
#include <iostream>
#include "header.h"
int main()
{
Student Jan;
std::cout << "It's OK" << std::endl;
foo();
return 0;
}
Second.cpp:
#include <iostream>
#include "header.h"
void foo()
{
std::cout << "I like Linux" << std::endl;
}
E la mia domanda è fare il codice di copia del compilatore dalla libreria due volte? Devo tagliare tutto iostream
da .cpp a uno .h?