Чтение онлайн

на главную - закладки

Жанры

Освой самостоятельно С++ за 21 день.

Либерти Джесс

Шрифт:

52: {

53: public:

54: Array(int itsSize = DefaultSize);

55: Array(const Array &rhs);

56: ~Array { delete [] pType; }

57:

58: // операторы

59: Array& operator=(const Array&);

60: T& operator[](int offSet) { return pType[offSet]; }

61: const T& operator[](int offSet) const

62: { return pType[offSet]; }

62:

63: // методы доступа

64: int GetSize const { return itsSize; }

65:

66: //

функция-друг

67: friend ostream& operator<< (ostream&, const Array<T>&);

68:

69: private:

70: T *pType;

71: int itsSize;

72: };

73:

74: template <class T>

75: Array<T>::Array(int size = DefaultSize):

76: itsSize(size)

77: {

78: pType = new T[size];

79: for (int i = 0; i<size; i++)

80: pType[i] = (T)0;

81: }

82:

83: template <class T>

84: Array<T>& Array<T>::operator=(const Array &rhs)

85: {

86: if (this == &rhs)

87: return *this;

88: delete [] pType;

89: itsSize = rhs.GetSize;

90: pType = new T[itsSize];

91: for (int i = 0; i<itsSize; i++)

92: pType[i] = rhs[i];

93: return *this;

94: }

95: template <class T>

96: Array<T>::Array(const Array &rhs)

97: {

98: itsSize = rhs.GetSize;

99: pType = new T[itsSize];

100: for (int i = 0; i<itsSize; i++)

101: pType[i] = rhs[i];

102: }

103:

104:

105: template <olass T>

106: ostream& operator<< (ostream& output, const Array<T>& theArray)

107: {

108: for (int i = 0; i<theArray.GetSize; i++)

109; output << "[" << i << "] " << theArray[i] << endl;

110: return output;

111: }

112:

113:

114: Array<Animal>::Array(int AnimalArraySize):

115: itsSize(AnimalArraySize)

116: {

117: pType = new Animal[AnimalArraySize];

118: }

119:

120:

121: void IntFillFunction(Array<int>& theArray);

122: void AnimalFillFunction(Array<Animal>& theArray);

123:

124: int main

125: {

126: Array<int> intArray;

127: Array<Animal> animalArray;

128: IntFillFunction(intArray);

129: AnimalFillFunction(animalArray);

130: cout << "intArray...\n" << intArray;

131: cout << "\nanimaiArray...\n" << animalArray << endl;

132: return 0;

133: }

134:

135: void IntFillFunction(Array<int>& theArray)

136: {

137: bool Stop = false;

138: int offset, value;

139: while (!Stop)

140: {

141: cout << "Enter an offset (0-9) and a value, ";

142: cout << "(-1 to stop): ";

143: cin >> offset >> value;

144: if (offset < 0)

145: break;

146: if (offset > 9)

147: {

148: cout << "***Please use values between 0 and 9.***\n";

149: continue;

150: }

151: theArray[offset] = value;

152: }

153: }

154:

155:

156: void AnimalFillFunction(Array<Animal>& theArr,

157: {

158: Animal * pAnimal;

159: for (int i = 0; i<theArray.GetSize; i++)

160: {

161: pAnimal = new Animal(i*10);

162: theArray[i] = *pAnimal;

163: delete pAnimal;

164: }

165: }

Примечание:Для

облегчения анализа в приведенные ниже результаты работы программы добавлены номера строк, но в действительности они не выводятся.

Результат:

1: animal animal animal Enter an offset (0-9) and a value. (-1 to stop): 0 0

2: Enter an offset (0-9) and a value. (-1 to stop): 1 1

3: Enter an offset (0-9) and a value. (-1 to stop): 2 2

4: Enter an offset (0-9) and a value. (-1 to stop): 3 3

5: Enter an offset (0-9) and a value. (-1 to stop): -1 -1

6: animal(int) Destroyed an animal...animal(int) Destroyed an animal...animal(int) Destroyed an animal...initArray...

7: [0] 0

8: [1] 1

9: [2] 2

10:

11: animal array

12: [0] 0

13: [1] 10

14: [2] 20

15:

16: Destroyed an animal...Destroyed an animal...Destroyed an animal

17: <<< Second run >>>

18: animal(int) Destroyed an animal..

19: animal(int) Destroyed an animal..

20: animal(int) Destroyed an animal..

21: Enter an offset (0-9) and a value. (-1 to stop): 0 0

22: Enter an offset (0-9) and a value. (-1 to stop): 1 1

Поделиться:
Популярные книги

Три `Д` для миллиардера. Свадебный салон

Тоцка Тала
Любовные романы:
современные любовные романы
короткие любовные романы
7.14
рейтинг книги
Три `Д` для миллиардера. Свадебный салон

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Земная жена на экспорт

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Земная жена на экспорт

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Рождение победителя

Каменистый Артем
3. Девятый
Фантастика:
фэнтези
альтернативная история
9.07
рейтинг книги
Рождение победителя

Отверженный IX: Большой проигрыш

Опсокополос Алексис
9. Отверженный
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Отверженный IX: Большой проигрыш

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Назад в ссср 6

Дамиров Рафаэль
6. Курсант
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Назад в ссср 6

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец

Надуй щеки! Том 2

Вишневский Сергей Викторович
2. Чеболь за партой
Фантастика:
попаданцы
дорама
фантастика: прочее
5.00
рейтинг книги
Надуй щеки! Том 2

Сердце Дракона. Том 12

Клеванский Кирилл Сергеевич
12. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.29
рейтинг книги
Сердце Дракона. Том 12

Обгоняя время

Иванов Дмитрий
13. Девяностые
Фантастика:
попаданцы
5.00
рейтинг книги
Обгоняя время

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7