1 #include <iostream>
2 using namespace std;
3 struct struct1{
4 int data1 ;
5 double data2 ;
6 struct1(){
7 (*this).data1 = data1 ;
8 (*this).data2 = data2 ;
9 cout<<"this is output by struct1 function !";
10 }
11 public :
12 void privateFunc(){
13 cout<<"this is private function , so this massage should never show in console ! \n";
14 }
15 };
16 struct struct2 : struct1{
17 /*
18
19 according the result in console , we can get the conclusion :
20
21 the default inherit method of struct is public
22
23 */
24 };
25 class class1 : public struct1 {
26 /*
27
28 if ignore 'public' identifiers , compile will show that privateFunc() in 35 line
29
30 can't access, this indicate that it is private inhert when subclass is a struct.
31
32 */
33 string name ;
34 public :
35 class1(){
36 name = "i'm a class !";
37 cout<<"this is output by class1 !";
38 }
39 };
40 class class2{
41 public :
42 void showClass2(){
43 cout<<"this is output by class2 ! \n ";
44 }
45 };
46 class class3 : class2{
47 /*
48
49 according to the result : showClass2 can't accessiable can prove class default
50
51 inherit method is private
52
53 */
54 };
55 struct struct4 : class2{
56 /*
57
58 default inherit is public
59
60 */
61 };
62 class class4 : struct1 {
63 /*
64
65 default inherit is private
66 */
67 }
68 int main(){
69 //struct2 onestruct2 ;
70 //onestruct2.privateFunc();
71 /* test class default inherit */
72 //class3 * oneclass3 = class3;
73 //oneclass3->showClass2();
74 /* test struct inherit class */
75 //struct4 onestruct4 ;
76 //onestruct4.showClass2();
77 class4 * oneclass4;
78 oneclass4->privateFunc();
79 return 0;
80 }