Hola. Soy relativamente nueva en esto del C++, y estoy empezando a crear mis propios ficheros de cabecera. Mi fichero main.cpp empieza así:
#include "../include/partido.h"
#include
using namespace std;
int main(){
...
}
Y me da el siguiente error de compilación:
g++ -c ./src/main.cpp -o ./obj/main.o ./src/main.cpp: In function ‘int main()’: ./src/main.cpp:45: error: no match para ‘operator<<’ en ‘std::operator<< [with _Traits = std::char_traits](((std::basic_ostream >&)(& std::cout)), ((const char*)"Victoria de ")) << par.Partido::EquipoVisitante’ /usr/include/c++/4.2/ostream:112: nota: los candidatos son: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>& (*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:121: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:131: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:169: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:173: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:177: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/bits/ostream.tcc:92: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:184: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/bits/ostream.tcc:106: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:195: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:204: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:208: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:213: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:217: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:225: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/ostream:229: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(const void*) [with _CharT = char, _Traits = std::char_traits] /usr/include/c++/4.2/bits/ostream.tcc:120: nota: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits] make: *** [obj/main.o] Error 1
Sin embargo, si elimino la primera línea de código (#include "../include/partido.h" ya no me da ningún error relacionado con el fichero iostream, sino simplemente:
g++ -c ./src/main.cpp -o ./obj/main.o ./src/main.cpp: In function ‘int main()’: ./src/main.cpp:20: error: ‘Partido’ no se declaró en este ámbito ./src/main.cpp:20: error: expected `;' before ‘par’ ./src/main.cpp:26: error: ‘par’ no se declaró en este ámbito ./src/main.cpp:29: error: ‘par’ no se declaró en este ámbito ./src/main.cpp:32: error: ‘par’ no se declaró en este ámbito ./src/main.cpp:40: error: ‘par’ no se declaró en este ámbito make: *** [obj/main.o] Error 1
¿Cuál puede ser el problema y cómo podría solucionarlo?
