SH::DiskListEOS Node1 SH::DiskListEOS - m_isDir - m_isRead + testInvariant() + DiskListEOS() + DiskListEOS() # getNext() # getPath() # doOpenDir() # getDirname() Node2 SH::DiskList - m_state + testInvariant() + ~DiskList() + next() + path() + fileName() + openDir() + dirname() # DiskList() # getNext() # getPath() # doOpenDir() # getDirname() Node2->Node1 Node3 std::string Node3->Node1 -m_dir -m_prefix -m_file -m_list Node4 std::basic_string< char > Node4->Node3