amt needs to be defined where you're using it, so if you're using it in main then you have to declare it in main. What I was trying to get at before is that you don't use it at all in main but delegate references to it into the class.

printJPY is declared as void printJPY (); but you're trying to use it as if it has a parameter. Either add the parameter to the definition or don't try to use it with a parameter.

The error 'USDtoEURO' : is not a member of 'currencies' is correct; there is no function USDtoEURO.

The error "'EURO' : undeclared identifier" is correct; there is no such identifier.

The error "'USDtoRiyal' : is not a member of 'currencies'" is correct; there is no such member function currencies::USDtoRiyal