Студопедия

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

КАТЕГОРИИ:

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






Листинг 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() вызывается снова.

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал