Программирование >>  Дополнительные возможности наследования 

1 ... 250 251 252 [ 253 ] 254 255 256 ... 265


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;



1 ... 250 251 252 [ 253 ] 254 255 256 ... 265

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика