I have a parent class which holds a map and n the child class i have used to inherit that class with for some reason can’t access the map which i can’t under stand why, i want to access the values inside the map.
my code is as follows
//HEADER FILE
#include <iostream>
#include <map>
using namespace std;
//////PARENT CLASS
struct TTYElementBase
{
//some code here
};
class element
{
public:
std::map<char,std::string> transMask;
std::map<char,std::string>::iterator it;
void populate();
};
//////CHILD CLASS .HPP
class elementV : public element
{
public :
std::string s1;
std::string s2;
elementV();
friend ostream &operator<< (ostream &, const elementV &);
void transLateMask();
};
//CPP FILE
#include "example.h"
#include <iostream>
elementV::elementV()
{
}
void elementV::transLateMask()
{
for ( it=transMask.begin() ; it != transMask.end(); it++ )
cout << (*it).first << endl;
}
int main()
{
elementV v;
v.transLateMask();
}
// ' OUTPUT IS NOTHING I DONT KNOW WHY?'
output is nothing but i need to acces the map fron the parent class, what am i doing wrong?
any help i will be very gratefull
Thanks
Does the map contain an entry for
'D'when you calltransLateMask()? You’ll get undefined behaviour (perhaps a runtime error) if it doesn’t, since you don’t check the result offind(). Something like this would be more robust:(If you’re not using C++11, then replace
autowith the full type name,std::map<char,std::string>::const_iterator).Alternatively, C++11 adds an
at()method which throwsstd::out_of_rangeif the key is not found: