Using a library as an "object"

 

I have a MQL4 library that my EA uses. The library has several variables declared on a global scope as well as functions. The content in these variables are preserved between calls to the library.

It functions a bit like an object with properties (the variables) and methods to operate on them. The difference is that I have to use "Get" and "Put" code to access them. It is still quite handy. I am assuming

that I get different "Instantiations" of the library if I run my EA on several pairs on the same MetaTrader platform. Otherwise my idea "collapses". This is a very convinient way to handle cases where the result of a function

is more than just a value. Are there any catches to using this technique? I know that MQL5 handles this well with "structs", but MQL5 has other drawbacks that made me drop it after several weeks of coding

Reason: