1
class base
2
{
3
public:
4
base()
5
{
6
cout <<" base::val "<<endl;
7
val = 12345;
8
print();
9
}
10
base(int x)
11
{
12
val = x;
13
cout << " "<<endl;
14
}
15
virtual void print()
16
{
17
cout << " base:print(), val = "<<val<<endl;
18
}
19
base & operator = (int x)
20
{
21
val = x;
22
cout <<" base::operator, val = "<<x<<endl;
23
return *this;
24
}
25
void relase()
26
{
27
cout << " base::relase" <<endl;
28
}
29
~base()
30
{
31
cout << " ~base::val = "<< val <<endl;
32
}
33
protected:
34
int val;
35
};
36
37
class deiver:public base
38
{
39
public:
40
deiver()
41
{
42
cout << " deiver::val "<<endl;
43
}
44
45
deiver(int x)
46
{
47
val = x;
48
print();
49
}
50
void print()
51
{
52
cout << " deiver::print(), val = "<< val <<endl;
53
}
54
void relase()
55
{
56
cout << " deiver::relase, val = "<<val<<endl;
57
}
58
deiver & operator = (int x)
59
{
60
val = x;
61
cout <<" deiver::operator, val = "<<x<<endl;
62
return *this;
63
}
64
~deiver()
65
{
66
cout << " deiver::~deiver "<<endl;
67
}
68
};
69
void des(base * b)
70
{
71
b->print();
72
b->relase();
73
}
74
deiver de = 98765;
75
int main()
76
{
77
deiver * dee = new deiver;
78
*(base *)dee = 100;
79
des(dee);
80
delete dee;
81
return 0;
82
}
83
84

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

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84
