Реферат: Моделирование структуры книги
}
Класс окна CMainFrame содержит защищенный атрибут класса CSplitterWnd, предоставляющий доступ к представлению страницы посредством вызова открытой член-функции класса CMainFrame:
class CMainFrame : public CFrameWnd
{
protected:
CSplitterWnd m_wndSplitter;
public:
CBookView* GetRightPane();
};
Объект класса книги является открытым атрибутом класса документа:
class CBookDoc : public CDocument
{
public:
CBookClass m_Book;
};
Все структурные элементы книги (разделы, главы и страницы) создаются в момент загрузки файла книги с диска через оператор new:
CRazdel* Razdel=new CRazdel;
m_Razdels.Add(Razdel);
Вызов операций
Вызов операций для объектов в C++ может быть организован двумя способами:
1) Если требуется вызвать операцию для переменной, являющейся объектом какого-либо класса, то используется оператор .*:
Object.MemberFunc();
2) Если переменная является указателем на объект класса, то доступ к методам, поддерживаемым данным классом, организовывается через оператор ->*:
pObject->MemberFunc();
Т.к. объект класса книги является открытым атрибутом класса документа, то доступ к членам класса книги осуществляется через указатель на объект класса документа. Т.о., чтобы вызвать функцию-член класса CBookClass, необходимо получить вначале указатель на объект класса CBookDoc:
CBookDoc* pDoc = GetDocument();
pDoc->m_Book.SetTreeCtrl(&refCtrl);
Если члены-функции вызываются внутри их класса, то вызов этих функций осуществляется напрямую без указания имени класса. Например, внутри функции CRazdels::DeleteRazdels() осуществляется вызов членов-функций, наследуемых от базового класса CObArray:
void CRazdels::DeleteRazdels()