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

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

Жанры

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

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

Шрифт:

47:

48: myClass obj3;

49: obj3.ShowMember;

50: obj3.ShowStatic;

51: return 0;

52: }

3. Измените программу из упражнения 2 таким образом, чтобы доступ к статическойпеременной-члену осуществлялся с помощью статической функции-члена. Сделайте статическую переменную-член закрытой.

1: #include <iostream.h>

2:

3: class myClass

4: {

5: public:

6: myClass;

7: ~myClass;

8: void ShowMember;

9: static int GetStatic;

10: private:

11: int itsMember;

12: static int itsStatic;

13: }

14:

15: myClass::myClass:

16: itsMember(l)

17: {

18: itsStatic++;

19: }

20:

21: myClass::~myClass

22: {

23: itsStatic--;

24: cout << "In destructor. ItsStatic: " << itsStatic << endl;

25: }

26:

27: void myClass::ShowMember

28: {

29: cout << "itsMember: " << itsMember << endl;

30: }

31:

32: int myClass::itsStatic = 0;

33:

34: void myClass::GetStatic

35: {

36: return itsStatic;

37: }

38:

39: int main

40: {

41: myClass obj1:

42: obj1.ShowMeraber;

43: cout << "Static: " << myClass::GetStatic << endl;

44:

45: myClass obj2;

46: obj2.ShowMember;

47: cout << "Static " << myClass::GetStatic << endl;

48:

49: myClass obj3;

50: obj3.ShowMember;

51: cout << "Static: " << myClass::GetStatic << endl;

52: return 0;

53: }

4.

Создайте в программе из упражнения 3 указатель на функцию-член для доступа к значению нестатической переменной-члена и воспользуйтесь им для вывода этих значений на печать.

1: #include ciostream.h>

2:

3: class myClass

4: {

5: public

6: myClass;

7: ~myClass;

8: void ShowMember;

9: static int GetStatic;

10: private:

11: int itsMember;

12: static int itsStatic;

13: }

14:

15: myClass::myClass:

16: itsMember(1)

17: {

18: itsStatic++;

19: }

20:

21: myClass::~myClassO

22: {

23: itsStatic--;

24: cout << "In destructor. ItsStatic: " << itsStatic << endl;

25: }

26:

27: void myClass::ShowMember

28: {

29: cout << "itsMember: " << itsMember << endl;

30: }

31:

32: int myClass::itsStatic = 0;

33:

34: int myClass::GetStatic

35: {

36: return itsStatic;

37: }

38:

39: int main

40: {

41: void (myClass::*PMF) ;

42:

43: PMF=myClass: :ShowMember;

44:

45: myClass obj1;

46: (obj1.*PMF);

47: cout << "Static: " << myClass::GetStatic << endl;

48:

49: myClass obj2:

50: (obj2.*PMF);

51: cout << "Static: " << myClass::GetStatic << endl;

52:

53: myClass obj3;

54: (obj3.*PMF);

55: cout << "Static: " << myClass::GetStatic << endl;

56: return 0;

57: }

5.

Добавьте две дополнительные переменные-члена к классу из предыдущих упраж-

нений. Добавьте методы доступа, возвращающие значения всех этих переменных.

Все функции-члены должны возвращать значения одинакового типа и иметь оди-

наковую сигнатуру. Для доступа к этим методам используйте указатель на функ-

цию-член.

1: #include<iostream.h>

2:

3: class myClass

4: {

5: public:

6: myClass;

7: ~myClass;

8: void ShowMember;

9: void ShowSecond;

10: void ShowThird;

11: static int GetStatic;

12: private:

13: int itsMember;

14: int itsSecond;

15: int itsThird;

16: static int itsStatic;

17: }

18:

19: myClass::myClass

20: itsMember(1),

21: itsSecond(2),

22: itsThird(3)

23: {

24: itsStatic++;

25: }

27: myClass::^rnyClass

28: {

29: itsStatic--;

30: cout << "In destructor. ItsStatic: " << itsStatic << endl;

31: }

32:

33: void myClass::ShowMember

34: {

35: cout << "itsMember: " << itsMember << endl;

36: }

37:

38: void myCIass:: ShowSecond

39: {

40: cout << "itsSecond: " << itsSecond << endl;

41: }

42:

43: void myClass::ShowThird

44: {

45: cout << "itsThird: " << itsThird << endl;

46: }

47: int myClass::itsStatic = 0;

48:

49: int myClass::GetStatic

50: {

51: return itsStatic;

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

Дворянская кровь

Седой Василий
1. Дворянская кровь
Фантастика:
попаданцы
альтернативная история
7.00
рейтинг книги
Дворянская кровь

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Теневой путь. Шаг в тень

Мазуров Дмитрий
1. Теневой путь
Фантастика:
фэнтези
6.71
рейтинг книги
Теневой путь. Шаг в тень

Идеальный мир для Демонолога 9

Сапфир Олег
9. Демонолог
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Демонолога 9

Судья (Адвокат-2)

Константинов Андрей Дмитриевич
2. Бандитский Петербург
Детективы:
боевики
7.24
рейтинг книги
Судья (Адвокат-2)

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Влюблённая ведьма

Джейн Анна
Любовные романы:
современные любовные романы
5.40
рейтинг книги
Влюблённая ведьма

Черный дембель. Часть 1

Федин Андрей Анатольевич
1. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 1

Идеальный мир для Лекаря 27

Сапфир Олег
27. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 27

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Кротовский, побойтесь бога

Парсиев Дмитрий
6. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Кротовский, побойтесь бога

Корсар

Русич Антон
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Корсар