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