Ну а функцию можно нижеследующую написать, что еще раз подтверждает, что защищенные данные – это открытые данные.
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| /////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
class A
{
protected:
int i_;
//-----------------------------------------------------------------------------------
public:
//-----------------------------------------------------------------------------------
A() : i_()
{}
//-----------------------------------------------------------------------------------
void print()
{
std::cout << "i_ = "
<< i_
<< std::endl;
}
};
/////////////////////////////////////////////////////////////////////////////////////////
struct B : public A
{
B(const A& a, int i) : A(a)
{
i_ = i;
}
};
/////////////////////////////////////////////////////////////////////////////////////////
void change_A_i(A& a, int i)
{
a = B(a, i);
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
A a;
a.print();
change_A_i(a, 15);
a.print();
} |
|