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

ЖАНРЫ

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

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

Шрифт:

25: {}

2. Используя программный блок из упражнения 1, напишите короткую выполняемую

программу, которая создает три объекта, а затем выводит значения их перемен-

ных-членов и статической переменной-члена класса. Затем последовательно уда-

ляйте объекты и выводите на экран значение статической переменной-члена.

1: #include <iostream.h>

2:

3: class myClass

4: {

5: public:

6: myClass;

7: ~myClass;

8: void ShowMember

9: void ShowStatic;

10: private:

11: int itsMember;

12: static int itsStatic;

13: };

14:

15: myClass::myClass:

16: itsMember(1)

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: " << itsMereber << endl;

30: }

31:

32: void myClass::ShowStatic

33: {

34: cout << "itsStatic: " << itsStatic << endl;

35: }

36: int myClass::itsStatic = 0;

37:

38: int main

39: {

40: myClass obj1;

41: obj1.ShowMember;

42: obj1.ShowStatic;

43:

44: myClass obj2;

45: obj2.ShowMember;

46: obj2.ShowStatic;

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;

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