Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Упражнения. 1. Объявите класс Animal (Животное), который содержит переменную-член, являющуюся объектом класса String.






     

    1. Объявите класс Animal (Животное), который содержит переменную-член, являющуюся объектом класса String.

    class Animal:

    {

    private:

    String itsName;

    };

    2. Опишите класс BoundedArray, являющийся массивом.

    class boundedArray: public Array

    {

    //...

    }

    3. Опишите класс Set, выполняемый в пределах массива BoundedArray.

    class Set: private Array

    {

    //...

    }

    4. Измените листинг 15.1 таким образом, чтобы класс String включал перегруженный

    оператор вывода (> >).

    1: #include < iostream.h>

    2: #include < string.h>

    3:

    4: class String

    5: {

    6: public:

    7: // конструкторы

    8: String();

    9: String(const char *const):

    10: String(const String &);

    11: ~String();

    12:

    13: // перегруженные операторы

    14: char & operator[](int offset);

    15: char operator[](int offset) const:

    16: String operator+(const String&);

    17: void operator+=(const String&);

    18: String & operator= (const String &);

    19: friend ostream& operator< <

    20: (ostream& _theStream, String& theString);

    21: friend ist.ream& operator> >

    22: (istream& _theStream, String& theString);

    23: // Общие функции доступа

    24: int GetLen()const { return itsLen; }

    25: const char * GetString() const { return itsString; }

    26: // static int ConstructorCount:

    27:

    28: private:

    29: String (int); // закрытый конструктор

    30: char * itsString;

    31: unsigned short itslen;

    32:

    33: };

    34:

    35: ostream& operator< < (ostream& theStream, String& theStnng)

    36: {

    37: theStream < < theString.GetString();

    38: return theStream;

    39: }

    40:

    41: istream& operator> > (istream& theStream, String& theString)

    42: {

    43: theStream > > theString.GetString();

    44: return theStream;

    45: }

    46:

    47: int main()

    48: {

    49: StringtheString(" npHBeT, мир.");

    50: cout < < theString;

    51: return 0;

    52: }

    5. Жучки: что неправильно в этой программе?

    1: #include < iostrearm.h>

    2:

    3: class Animal;

    4:

    5: void setValue(Animal&, int);

    6:

    7:

    8: class Animal

    9: {

    10: public:

    11: int GetWeight()const { return itsWeight; }

    12: int GetAge() const { return itsAge; }

    13: private:

    14: int itsWeight;

    15: int itsAge;

    16: };

    17:

    18: void setValue(Animal& theAnimal, int theWeight)

    19: {

    20: friend class Animal;

    21: theAnimalitsWeight = theWeight;

    22: }

    23:

    24: int main()

    25: {

    26: Animal peppy;

    27: setValue(peppy, 5):

    28: return 0;

    29: }

    Нельзя помещать объявление friend в функцию. Нужно объявить функцию другом в объявлении класса.

    6. Исправьте листинг, приведенный в упражнении 5, и откомпилируйте его.

    1: #include < iostream.h>

    2:

    3: class Animal;

    4:

    5: void setValue(Animal&, int);

    6:

    7:

    8: class Animal

    9: {

    10: public:

    11: friend void setValue(Animal&, int);

    12: int GetWeight()const { return itsWeight; }

    13: int GetAge() const { return itsAge; }

    14: private:

    15: int itsWeight;

    16: int itsAge;

    17: };

    18:

    19: void setValue(Animal& theAnimal, int theWeight)

    20: {

    21: theAnimal.itsWeight = theWeight;

    22: }

    23:

    24: int main()

    25: {

    26: Animal peppy;

    27: setValue(peppy, 5);

    28: return 0;

    29: }

    7. Жучки: что неправильно в этой программе?

    1: #include < iostream.h>

    2:

    3: class Animal;

    4:

    5: void setValue(Animal&, int):

    6: void setValue(Animal&, int.int);

    7:

    8: class Animal

    9: {

    10: friend void setValue(Animal&, int):

    11: private:

    12: mt itsWeight;

    13: int itsAge;

    14: };

    15:

    16: void setValue(Animal& theAnimal, int theWeight)

    17: {

    18: theAnimal.itsWeight = theWeight;

    19: }

    20:

    21:

    22: void setValue(Animal& theAnimal, int theWeight, int theAge)

    23: {

    24: theAnimal.itsWeight = theWeight:

    25: theAnimal.itsAge = theAge;

    26: }

    27:

    28: int main()

    29: {

    30: Animal peppy;

    31: setValue(peppy, 5);

    32: setValue(peppy, 7, 9);

    33: return 0:

    34: }

    Функиия setValue(Animal&, int) была объявлена дружественной, но перегруженная

    функция setValue(Animal&, int, int) не была объявленадружественной.

    8. Исправьте листинг, приведенный в упражнении 7, и откомпилируйте его.

    1: #include < iostream.h>

    2:

    3: class Animal;

    4:

    5: void setValue(Animal&, int);

    6: void setValue(Animal&, int.int);

    7:

    8: class Animal

    9: {

    10: friend void setValue(Animal&, int);

    11: friend void setValue(Animal&, int.int): // изменение!

    12: private:

    13: int itsWeight;

    14: int itsAge;

    15: };

    16:

    17: void setValue(Animal& theAnimal, int theWeight)

    18: {

    19: theAnimal.itsWeight = theWeight;

    20: }

    21:

    22:

    23: void setValue(Animal& theAnimal, int theWeight, int theAge)

    24: {

    25: theAnimal.itsWeight = theWeight;

    26: theAnimal.itsAge = theAge;

    27: }

    28:

    29: int main()

    30: {

    31: Animal peppy;

    32: setValue(peppy.5);

    33: setValue(peppy, 7, 9);

    34: return 0;

    35: }

     

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.