|
Программирование >> Дополнительные возможности наследования
в векторе из библиотеки STL не задается максимальное число элементов, так как это решение лучше переложить на плечи создателей компиляторов. Векторный класс предоставляет функцию-член max size(), которая способна сообшить это магическое число, определенное в вашем компиляторе. В листинге 19.8 демонстрируется использование векторного класса. Вы увидите, что для упрошения обработки строк в этом листинге используется стандартный класс string. Для получения более подробной информации о классе string обратитесь к документации, прилагаемой к вашему компилятору. Листинг 19.8. Создание вектора о оОесоечение gocmgna к его зАвментам 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 35 36 37 38 39 40 flinclude <iostream> flinclude <string> flinclude <vector> using namespace std; class Student { public: StudentO; Student(const string& name, const int age); Student(const Student& rhs); StudentO; void SetName(const string& name); string GetNameO const; void SetAge(const int age); int GetAgeO const; Student& operator=(const Student& rhs); private: string itsName; int itsAge; Student::Student() : itsNameCNew Student ), itsAge(16) { } Student::Student(const string& name, const int age) : itsName(name), itsAge(age) { } Student::Student(const Student& rhs) : itsName(rhs.GetNameO), itsAge( rhs. GetAge()) Student: : StudentO { } 41: 42: 43: 44: 45: 46: 47: 48; 49; 50; 51: 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 52; 63: 64: 66; 66; 67; 68; 69: 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86: 87; 88: 89; 90; void Student;;SetName(const stringi name) itsName = name; string Student;;GetName() const return itsName; void Student:;SetAge(const int age) ItsAge = age; nt Student;;GetAgeO const return itsAge; Students. Student; ;operator=(oonst Students rhs) ItsName = rhs.GetNameO; ItsAge = rhs, GetAgeO; return this; ostreami operator (ostream& os, const Students rhs) OS rhs.GetNameO is rhs,GetAgeO years old ; return os; emplate<class T> void ShowVector(const vector<T>& v); Отображает свойства вектора ypedef vector<Student> nt mainO SchoolClass; Student Harry; Student Sally( Sally , 15); Student Bill( Bill , 17); Student Peter( Peter , 16); SchoolClass EmptyClass; cout EmptyClass:\ n ; ShowVector(EmptyClass); SchoolClass GrowingClass(3); cout GrowingClass(3):\ n ; ShowVectorCGrowingClass); GrowingClass[0] = Harry; GrowingClass[1] = Sally; GrowingClass[2] = BUI; cout << GrowingClass(3) after assigning students;\ n Show\/ector(GrowingClass); GrowingClass.push back(Peter); cout GrowingClass() after added 4th student:\ n ; ShowVector(GrowingClass); GrowingClass[0].Set Name( Harry ); GrowingClass[0].SetAge(18); cout GrowingClassO after Set\n; ; ShowVector(GrowingClass); return 0; Отображает свойства вектора template<class Т> void Show\/ector(const vector<T>& v) { cout max size() = v.max size(); cout \ tsizeO = v,slze(); cout \ tcapacityO = v,capacity(); cout \ t (v.emptyO? empty : not empty ); cout << \ n ; for (int 1=0; i < v.size(): ++i) cout v[i] \ n ; cout << endl; EmptyClass: max size() = 214748364 slze() = 0 capacltyO = 0 empty GrowingClass(3); max size() = 214748364 slze() = 3 capacltyO = 3 not empty New Student is 16 years old New Student is 16 years old New Student is 16 years old
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |