The IDL_Object::_overloadCaret function method defines the behavior of the exponentiation (^) operator for instances of objects that inherit from the IDL_Object class.
This method is designed to replicate the default behavior of objects that do not use operator overloading. As a result, object classes that do inherit from the IDL_Object class but that do not override this particular method will behave in the same manner as object classes that do not inherit from the IDL_Object class.
Tip: If you write an object class that inherits from IDL_Object and overloads this method, you can call the superclass method directly to achieve the default behavior for specific cases.
In most cases, this method is called indirectly by specifying an object reference as an argument on either the left or right side of the ^ operator. When called explicitly, the syntax is:
Result = Obj->[IDL_Object::]_overloadCaret( Left, Right )
This method is called when an operand to the ^ operator is an instance of a class that inherits from the IDL_Object class, but that does not implement its own _overloadCaret method. The return value replicates the behavior of the ^ operator with an object that does not inherit from the IDL_Object class.
The argument that appears on the left side of the operator. If the argument on the left side is the first instance of the overloaded object class, Left will be the same as the implicit self argument.
The argument that appears on the right side of the operator. If the argument on the right side is the first instance of the overloaded object class, Right will be the same as the implicit self argument.
To overload the ^ operator for an object class, implement a method with the following signature:
FUNCTION class::_overloadCaret, Left, Right
The return value of this function should be the result of the overloaded ^ operation.