qmlRegisterType does not create an instance. It registers the type ClassInstance with qml engine, so that you can create instances of ClassInstance in your qml. When you said you could access this instance in qml side, you were actually creating a new instance in qml and it is not accessible from c++.
If your intention is to create a single instance which could be accessed from both qml and c++, then what you need is a context property.
ClassInstance obj;
view.rootContext()->setContextProperty("myInstance", &obj);
Now you can access the same instance as myInstance in qml and as obj in c++ code. Documentation here.