Code:
#include <Data.h>
int main(int arg_count, char** argv)
{
if(arg_count!=3){
cerr<<"Files misisng\n";
exit(1);
}
Data object;
object.read_ref(argv[1]); //
object.read_mmp(argv[2]); //
std::map<std::string,Polymorphism> temp= object.ret_poly();
object.test(temp);// this works completely fine..
//object.test(object.ret_poly()); // this doesn't work
return 0;
}
Code:
class Data
{
public:
/** Default constructor */
Data();
void read_ref(const char* );
void read_mmp(const char*);
void test(std::map<std::string,Polymorphism>&); //some issue if I use object.test(object.ret_poly());
void set_poly(std::map<std::string, Polymorphism>&);
std::map<std::string, Polymorphism> ret_poly();
protected:
private:
std::map<std::string, Polymorphism> polymorphisms;
std::map<std::string, std::string> reference;
};
Data.cpp file
Code:
void Data::set_poly(std::map<std::string, Polymorphism>& t_poly){
polymorphisms=t_poly;
}
std::map<std::string, Polymorphism> Data::ret_poly(){
return(polymorphisms);
}
void Data::test(std::map<std::string,Polymorphism>& temp_poly){
}
//object.test(object.ret_poly());
This actually should work, because it is passing address of polymorphisms object.
I have tried changing prototype of test in Data.h, but failed.
Kindly help me understand, passing object address/pointers in C++.