Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Листинг 6.3. определение методов простого класса
1: // Пример определения методов в 2: // объявлении класса 3: 4: #include < iostream.h> // для объекта cout 5: 6: class Cat // начало объявления класса 7: { 8: public: // начало раздела public 9: int GetAgeO; // метод доступа 10: void SetAge (int age); // метод доступа 11: void Meow(); // обычный метод 12: private: // начало раздела 13: int itsAge; // переменная-член 14: }; 15: 16: // GetAge, открытая функция доступа, 17: // возвращает значение переменной-члена itsAge 18: int Cat:: GetAge() 19: { 20: return itsAge; 21: } 22: 23: // Определение открытой функции доступа SetAge 24: // Функция SetAge 25: // инициирует переменную-член itsAge 26: void Cat:: SetAge(int age) 27: { 28: // устанавливаем переменную-член itsAge равной 29: // значению, переданному с помощью параметра age 30: itsAge = age; 31: } 32: 33: // Определение метода Meow 34: // возвращает void 35: // параметров нет 36: // используется для вывода на экран текста " Meow" 37: void Cat:: Meow() 38: { 39: cout < < " Meow.\n"; 40: } 41: 42: // Создаем виртуальную кошку, устанавливаем ее возраст, разрешаем 43: // ей мяукнуть, сообщаем ее возраст, затем снова " мяукаем". 44: int main() 45: { 46: Cat Frisky; 47: Frisky.SetAge(5); 48: Frisky.Meow(); 49: cout < < " Frisky is а cat who is "; 50: cout < < Frisky.QetAge() < < " years old.\n"; 51: Frisky.Meow(); 52: return 0; 53: }
Результат: Meow. Frisky is а cat who is 5 years old. Meow.
Анализ: В строках 6—14 содержится определение класса Cat. Строку 8 занимает ключевое слово public, которое сообщает компилятору, что за ним следует набор открытых членов класса. В строке 9 содержится объявление открытого метода GetAge(), который предоставляет доступ к закрытой переменной-члену itsAge, объявляемой в строке 13. В строке 10 объявляется открытая функция доступа SetAge(), которая принимает в качестве аргумента целочисленное значение и присваивает переменной itsAge значение этого аргумента. В строке 11 объявляется метод Meow(). Этот метод не является функцией доступа к данным-членам класса, а используется для вывода на экран слова Meow. В строке 12 начинается закрытый раздел, который включает только одно объявление закрытой переменной-члена itsAge (строка 13). Объявление класса завершается закрывающей фигурной скобкой и точкой с запятой в строке 14. Строки 18—21 содержат определение функции-члена GetAge(). Этот метод не принимает никаких параметров и возвращает целое значение. Обратите внимание на то, что при определении методов класса используется имя класса, за которым следуют два двоеточия и имя функции (строка 18). Благодаря этому-синтаксису компилятор узнает, что определяемая здесь функция GetAge() — это функция, объявленная в классе Cat. За исключением строки заголовка, GetAge() создается точно так же, как и другие функции. Определение функции GetAge() занимает только одну строку, в которой указывается, что эта функция возвращает значение переменной-члена itsAge. Обратите внимание, что функция main() не может получить доступ к этой переменной, поскольку она объявлена в закрытом разделе класса Cat. При этом из функции main() можно обратиться к открытому методу GetAge(). А поскольку метод GetAge() является функцией-членом класса Cat, то он имеет все права доступа к переменной-члену itsAge. В результате функция GetAge() возвращает значение переменной itsAge в функцию main(). В строке 26 начинается определение функции-члена SetAge(). Она принимает целочисленный параметр и присваивает переменной itsAge значение этого параметра (строка 30). Являясь членом класса Cat, функция SetAge() имеет прямой доступ к переменной-члену itsAge. В строке 37 начинается определение метода Meow() класса Cat. Этот метод занимает всего одну строку, в которой выводится на экран слово Meow, а затем выполняется переход на новую строку. Помните, что для перехода на новую строку используется символ \n. В строке 44 начинается тело функции main(); она не принимает никаких аргументов. В строке 46 в функции main() объявляется объект класса Cat с именем Frisky. В строке 47 переменной-члену itsAge присваивается значение 5 с помощью метода доступа SetAge(). Обратите внимание, что в вызове этого метода указывается имя объекта (Frisky), за которым следует оператор прямого доступа (.), и имя самого метода (SetAge()). Таким способом можно вызывать любые другие методы класса. В строке 48 вызывается функция-член Meow(), а в строке 49 на экран выводится значение переменной-члена с использованием функции доступа GetAge(). В строке 51 функция Meow() вызывается снова.
|