Cuando tenía interfaz e implementación juntos en el mismo fichero, el compilador aceptaba el objeto sin problemas, pero después de separarlos ya no lo reconoce, aun pudiendo acceder sin problemas a la declaración de la clase del objeto.
Código
#ifndef _MYHEADER_HPP_ #define _MYHEADER_HPP_ class A{ public: std::string someString; }; class B{ public: std::vector<A> aList; public: void addA(); }; #endif /* _MYHEADER_HPP_ */ //implementation file #include <string> #include <vector> #include "myheader.hpp" void B::addA(){ A a; a.someString = "Hola"; // Here compiler says : Invalid arguments 'Candidates are: void push_back(const A &)' line 18 Semantic Error aList.push_back(a); }
He intentado declarando un puntero a vector de A en vez de hacerlo de esta forma y resulta igual. También, si en B::addA() haces:
Código
Accede sin problemas al objeto, con lo cual creo que puede acceder perfectamente a la declaración de la clase en ese momento.
std::cout << a.someString << std::endl;
¿Que estoy haciendo mal?
Gracias de antemano.