Persistent object-oriented models play an important role in the research and development of complex systems in scientific fields, engineering, real-time applications, etc. These models are usually characterized by highly structured and interrelated data, require data storage, and deep navigational access. In the paper, some approaches and programming features in C + + are considered to address the arising issues. A model object is proposed to be divided into two parts. A part placed in RAM contains both own and referential object identifiers (IDs). A part with the bulk of data remains on a disk, thus reducing memory usage. Such a part is stored in a separate file with the unique file name that includes the object ID. These file names provide quick searches for short queries. A deeper search is performed by native queries in C + + using a set of complex query patterns, and does not require reading an entire object. This ensures high speed of query processing regardless of the amount of data stored. Modelling and simulation of a student registration system in C + + are performed, and results are presented and discussed.