|
Программирование >> Дополнительные возможности наследования
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 ( ostream& theStream,String& theString); friend istream& operator ( istream& theStream,String& theString); Общие функции доступа int GetLenOconst { return itsLen; } const char * GetStringO const { return itsString; } static int ConstructorCount; private: String (int); закрытый конструктор char itsString; unsigned short itsLen; OStreara& operator ( ostream& theStream, String& theString) { theStream theString.GetStringO; return theStream; istream& operator ( istream& theStream, Strings theString) { theStream >> theString.GetStringO; return theStream; int mainO { String theStringCnpneeT, мир. ); cout theString; return 0; } 5. Жучки: что неправильно в этой программе? 1: 2: 3: 4 5 6 7 8 9 10 11 12 Sinclude <iostream.h> class Animal; void set\/alue(Animal& , int); class Animal { public: int GetWeightOconst { return itsWeight; } int GetAgeO const { return itsAge; } 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 private: int itsWeight; int itsAge; void setValue(Animal& theAnimal, int theWeight) { friend class Animal; theAnimal.itsWeight = theWeight; int main() { Animal peppy; setValue(peppy,5); return 0; } Нельзя помещать объявление friend в функцию. Нужно объявить функцию другом в объявлении класса. 6. Исправьте листинг, приведенный в упражнении 5, и откомпилируйте его. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Sinclude <iostream.h> class Animal; void setValue(Animal& , int); class Animal { public: friend void setValue(Animal&, int); int GetWeight()const { return itsWeight; } int GetAgeO const { return itsAge; } private: int itsWeight; int itsAge; void setValue(Animal& theAnimal, int theWeight) { theAnimal.itsWeight = theWeight; int mainO { Animal peppy; 27 28 29 setValue(peppy, 5); return 0; } 7. Жучки: что неправильно в этой профамме? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ftinclude <iostream.h> class Animal; void set\/alue(Animal& , int); void set\/alue(Animal& , int, int); class Animal { friend void setValue(Animal& ,int); private: int itsWeight; int itsAge; void set\/alue(Animal& theAnimal, int theWeight) { theAnimal.itsWeight = theWeight; void setValue(Animal& theAnimal, int theWeight, int theAge) { theAnimal.itsWeight = theWeight; theAnimal.itsAge = theAge; int main() { Animal peppy; setValue(peppy,5); setValue(peppy,7,9); return 0; } Функция setValue(Animal& ,int) была объявлена дружественной, но перефуженная функция setValue(Animal& , int, int) не была объявлена дружественной. 8. Исправьте листинг, приведенный в упражнении 7, и откомпилируйте его. 1; ftinclude <iostream.h> 2: 3; class Animal;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |