You can ensure that operator [] gets called by doing this...

MyArray.operator [](1) = 6;

but it would be a better idea to do away with the conversion operator altogether. if you must then make an explicit function called to_array() or similar then where you would normally depend upon an implicit conversion you instead must state explicitly by calling to_array(). This has the effect of making your code safer and more readable. a win-win situation.