CGenerator( CStorage& storage ) : storage( storage ) {
     std::vector<std::string> regNames = {
             "rax", "rbx", "rcx", "rdx", "rsi", "rdi"
     };
     for( auto& name : regNames) {
         regHolders.emplace_back(new CTemp(storage.Get(name)));
         registers.push_back(regHolders.back().get());
     }
 }
void ExamplePointerToClasses(void) {
    CStorage objStatic;

    objStatic.Set(1);
    cout << " + objStatic.Get() = " << objStatic.Get() << endl;

    CStorage *pObject = new CStorage[2];
       
    pObject->Set(2);
    cout << " + pObject[0].Get() = " << pObject[0].Get() << endl;

    pObject[1].Set(3);
    cout << " + pObject[0].Get() = " << pObject[0].Get() << endl;
    cout << " + pObject[1].Get() = " << pObject[1].Get() << endl;
}