private:
+//public class Currency : int <-- this should really be an int64 or something because currency amounts are discrete numbers
+// because the math on double type can introduce variations or whatnot
+// I think you might want the public class SomethingCurrency : double type for more abstract currency work... statistical? scientific? but not for transactional...
public class Currency : double
{
const char * OnGetString(char * tempString, void * fieldData, bool * needClass)