C++ Version of "Hello World"

The code below was automatically generated from the XMLVM shown on the XMLVM homepage using an appropriate XSLT stylesheet. As can be seen, we simply mimic the stack machine of the Java virtual machine in C++.
// Automatically generated by XMLVM. DO NOT EDIT!

#include "xmlvm.h"
#include "default.h"
    
class HelloWorld;
typedef HelloWorld* HelloWorld_ref;
class HelloWorld
        : public java::lang::Object
{
public:

    void __init()
    {
        XMLVM::Locals locals(1);
        XMLVM::Stack stack(1);
        XMLVM::Object_Ptr< java::lang::Object > op1;
        XMLVM::Object_Ptr< java::lang::Object > op2;
        locals[0] = (java::lang::Object_ref) this;
        label0:
        stack.push(locals[0]);
        ((java::lang::Object_ref) stack.top(0))->__init();
        stack.remove(1);
        label1:
        return;
        label998:
        cout << "jsr/ret.  Terminating." << endl;
        exit(1);
    }

    static void main(XMLVM::Object_Ptr< XMLVM::Array< java::lang::String >  > arg1)
    {
        XMLVM::Locals locals(1);
        XMLVM::Stack stack(2);
        XMLVM::Object_Ptr< java::lang::Object > op1;
        XMLVM::Object_Ptr< java::lang::Object > op2;
        locals[0] = arg1;
        label0:
        stack.push(java::lang::System::out);
        stack.push( new java::lang::String("Hello World"));
        ((java::io::PrintStream_ref) stack.top(1))->println((java::lang::String_ref) stack.top(0));
        stack.remove(2);
        label1:
        return;
        label998:
        cout << "jsr/ret.  Terminating." << endl;
        exit(1);
    }

};


class HelloWorld_Loader {
    public:
        HelloWorld_Loader() {
            HelloWorld::__clinit();
        }
};
static HelloWorld_Loader HelloWorld_loader;


int main(int argc, char* argv[])
{
    XMLVM::Object_Ptr< XMLVM::Array< java::lang::String > > args = new XMLVM::Array< java::lang::String >(argc-1);
    for(int i=0; i<argc-1; i++){
        (*args)[i] = new java::lang::String(argv[i+1]);
    }
    HelloWorld::main(args);
    return 0;
}