Освой самостоятельно С++ за 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.
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;