|
Программирование >> Дополнительные возможности наследования
48: 49: 50: * * * Авиационные детали 52; class AirPlanePart ; public Part 53: { 54: public: 55; AirPlanePart();itsEngineNunber(1){ } ; 56: AirPlanePart 57: (Int EngineNumber, int PartNumber); 58; virtual void DisplayO const 59; { 50; Part;:Display(); 61: oout Engine No,; ; 62: oout itsEngineNumber endl; 63; } 64: private: 65; int ItsEngineNumber; 66; } ; 68: AirPlanePart::AirPlanePart 69: (int EngineNumber, int PartNumber); 70: itsEngineNumber(EngineNumber), 71: Part(PartNumber) 72: { } 74: ************** Узлы списка деталей 75: class PartNode 76: { 77: public: 78: PartNode (Part.); 79: PartNodeO; 80: void SetNext(PartNode * node) 81: { itsNext = node; } 82: PartNode . GetNextO const; 83; Part GetPartO const; 84: private: 85: Part itsPart; 86: PartNode itsNext; 87: } ; 88: Выполнение PartNode.,. 89: 90: PartNode::PartNode(Part. pPart): 91: itsPart(pPart), 92: itsNext(O) 93: { } 95: PartNode:: PartNodeO 96: { 97: delete itsPart; 98: itsPart = 0; 99: delete itsNext; itsNext = 0; 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 Возвращается NULL, если нет следующего узла PartNode PartNode * PartNode::GetNext() const return itsNext; Part ♦ PartNode;:GetPart() const { if (itsPart) return itsPart; else return NULL; ошибка ................ Список деталей .** .. . . class PartsList ( public: PartsLisK); PartsLlstO; необходимо, чтобы конструктор-копировщик и оператор соответствовали друг другу! void Iterate(void (Part:: !)()const) const; Part* Find(int & position, int PartNumber) const; Part* GetFirstO const; void Insert(Part *); Part* operator[](int) const; int GetCountO const { return ItsCount;} static PartsList& GetGlobalPartsList() return GlobalPartsList; private: Parttode * pHead; int ItsCount; static PartsList GlobalPartsList; } ; PartsList PartsList;:GlobalPartsList; PartsList::PartsList(): pHead(O), 147: itsCount(O) 148: { } 149: 150: PartsList:: PartsList() 151: ( 152: delete pHead; 153: } 154: 155: Part* PartsList::GetFirst() const 156: { 157: if (pHead) 158: return pHead->GetPart(); 159: else 160: return NULL; ловушка ошибок 161: } 162: 163: Part . PartsList::operator[](int offSet) const 164: { 165: PartNode* pNode = pHead; 166: 167: if (!pHead) 168: return NULL; ловушка ошибок 169: 170: if (offSet > itsCount) 171: return NULL; ошибка 172: 173: for (int i=0:i<offSet; 1++) 174; pNode = pNode->GetNext(); 175: 176: return pNode->GetPart(); 177: } 178: 179: Part* PartsList::Find( 180: int & position, 181: int PartNumber) const 182: { 183: PartNode * pNode = 0; 184: for (pNode = pHead, position = 0; 185: pNode!=NULL: 186: pNode = pNode->GetNext(), position++) 187: { 188: if (pNode->GetPart()->GetPartNumber()== PartNumber) 189: break; 190: } 191: if (pNode == NULL) 192: return NULL; 193: else 194: return pNode->GetPart(); 195: } 196:
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |