#include <stdio.h>
/*
* 多重继承
*/
class box
{
public:
int width, height, depth;
box() {}
box(int width, int height, int depth)
{
this->width = width;
this->height = height;
this->depth = depth;
}
void dump()
{
printf("this is box. width=%d, height=%d, depth=%d\n", width, height, depth);
}
int get_volume()
{
return width * height * depth;
}
};
class solid_object
{
public:
int density;
solid_object() {}
solid_object(int density)
{
this->density = density;
}
int get_density()
{
return density;
}
void dump()
{
printf("this is solid_object. density=%d\n", density);
}
};
class solid_box : box, solid_object
{
public:
solid_box(int width, int height, int depth, int density)
{
this->width = width;
this->height = height;
this->depth = depth;
this->density = density;
}
void dump()
{
printf("this is solid_box. width=%d,height=%d,depth=%d,density=%d\n", width, height, depth, density);
}
int get_weight()
{
return get_volume() * get_density();
}
};
int main()
{
box b(10, 20, 30);
solid_object so(100);
solid_box sb (10, 20, 30, 3);
b.dump();
so.dump();
sb.dump();
printf("%d\n", sb.get_weight());
return 0;
}
#if 0
/*
* intel
*/
0000000000001169 <main>:
1169: f3 0f 1e fa endbr64
116d: 55 push %rbp
116e: 48 89 e5 mov %rsp,%rbp
1171: 48 83 ec 30 sub $0x30,%rsp
1175: 64 48 8b 04 25 28 00 mov %fs:0x28,%rax
117c: 00 00
117e: 48 89 45 f8 mov %rax,-0x8(%rbp)
1182: 31 c0 xor %eax,%eax
1184: 48 8d 45 d4 lea -0x2c(%rbp),%rax
1188: b9 1e 00 00 00 mov $0x1e,%ecx
118d: ba 14 00 00 00 mov $0x14,%edx
1192: be 0a 00 00 00 mov $0xa,%esi
1197: 48 89 c7 mov %rax,%rdi
119a: e8 a1 00 00 00 callq 1240 <_ZN3boxC1Eiii>
119f: 48 8d 45 d0 lea -0x30(%rbp),%rax
11a3: be 64 00 00 00 mov $0x64,%esi
11a8: 48 89 c7 mov %rax,%rdi
11ab: e8 38 01 00 00 callq 12e8 <_ZN12solid_objectC1Ei>
11b0: 48 8d 45 e0 lea -0x20(%rbp),%rax
11b4: 41 b8 03 00 00 00 mov $0x3,%r8d
11ba: b9 1e 00 00 00 mov $0x1e,%ecx
11bf: ba 14 00 00 00 mov $0x14,%edx
11c4: be 0a 00 00 00 mov $0xa,%esi
11c9: 48 89 c7 mov %rax,%rdi
11cc: e8 73 01 00 00 callq 1344 <_ZN9solid_boxC1Eiiii>
11d1: 48 8d 45 d4 lea -0x2c(%rbp),%rax
11d5: 48 89 c7 mov %rax,%rdi
11d8: e8 99 00 00 00 callq 1276 <_ZN3box4dumpEv>
11dd: 48 8d 45 d0 lea -0x30(%rbp),%rax
11e1: 48 89 c7 mov %rax,%rdi
11e4: e8 2f 01 00 00 callq 1318 <_ZN12solid_object4dumpEv>
11e9: 48 8d 45 e0 lea -0x20(%rbp),%rax
11ed: 48 89 c7 mov %rax,%rdi
11f0: e8 b3 01 00 00 callq 13a8 <_ZN9solid_box4dumpEv>
11f5: 48 8d 45 e0 lea -0x20(%rbp),%rax
11f9: 48 89 c7 mov %rax,%rdi
11fc: e8 eb 01 00 00 callq 13ec <_ZN9solid_box10get_weightEv>
1201: 89 c6 mov %eax,%esi
1203: 48 8d 3d 91 0e 00 00 lea 0xe91(%rip),%rdi # 209b <_IO_stdin_used+0x9b>
120a: b8 00 00 00 00 mov $0x0,%eax
120f: e8 5c fe ff ff callq 1070 <printf@plt>
1214: b8 00 00 00 00 mov $0x0,%eax
1219: 48 8b 55 f8 mov -0x8(%rbp),%rdx
121d: 64 48 33 14 25 28 00 xor %fs:0x28,%rdx
1224: 00 00
1226: 74 05 je 122d <main+0xc4>
1228: e8 33 fe ff ff callq 1060 <__stack_chk_fail@plt>
122d: c9 leaveq
122e: c3 retq
122f: 90 nop
0000000000001230 <_ZN3boxC1Ev>:
1230: f3 0f 1e fa endbr64
1234: 55 push %rbp
1235: 48 89 e5 mov %rsp,%rbp
1238: 48 89 7d f8 mov %rdi,-0x8(%rbp)
123c: 90 nop
123d: 5d pop %rbp
123e: c3 retq
123f: 90 nop
0000000000001240 <_ZN3boxC1Eiii>:
1240: f3 0f 1e fa endbr64
1244: 55 push %rbp
1245: 48 89 e5 mov %rsp,%rbp
1248: 48 89 7d f8 mov %rdi,-0x8(%rbp)
124c: 89 75 f4 mov %esi,-0xc(%rbp)
124f: 89 55 f0 mov %edx,-0x10(%rbp)
1252: 89 4d ec mov %ecx,-0x14(%rbp)
1255: 48 8b 45 f8 mov -0x8(%rbp),%rax
1259: 8b 55 f4 mov -0xc(%rbp),%edx
125c: 89 10 mov %edx,(%rax)
125e: 48 8b 45 f8 mov -0x8(%rbp),%rax
1262: 8b 55 f0 mov -0x10(%rbp),%edx
1265: 89 50 04 mov %edx,0x4(%rax)
1268: 48 8b 45 f8 mov -0x8(%rbp),%rax
126c: 8b 55 ec mov -0x14(%rbp),%edx
126f: 89 50 08 mov %edx,0x8(%rax)
1272: 90 nop
1273: 5d pop %rbp
1274: c3 retq
1275: 90 nop
0000000000001276 <_ZN3box4dumpEv>:
1276: f3 0f 1e fa endbr64
127a: 55 push %rbp
127b: 48 89 e5 mov %rsp,%rbp
127e: 48 83 ec 10 sub $0x10,%rsp
1282: 48 89 7d f8 mov %rdi,-0x8(%rbp)
1286: 48 8b 45 f8 mov -0x8(%rbp),%rax
128a: 8b 48 08 mov 0x8(%rax),%ecx
128d: 48 8b 45 f8 mov -0x8(%rbp),%rax
1291: 8b 50 04 mov 0x4(%rax),%edx
1294: 48 8b 45 f8 mov -0x8(%rbp),%rax
1298: 8b 00 mov (%rax),%eax
129a: 89 c6 mov %eax,%esi
129c: 48 8d 3d 65 0d 00 00 lea 0xd65(%rip),%rdi # 2008 <_IO_stdin_used+0x8>
12a3: b8 00 00 00 00 mov $0x0,%eax
12a8: e8 c3 fd ff ff callq 1070 <printf@plt>
12ad: 90 nop
12ae: c9 leaveq
12af: c3 retq
00000000000012b0 <_ZN3box10get_volumeEv>:
12b0: f3 0f 1e fa endbr64
12b4: 55 push %rbp
12b5: 48 89 e5 mov %rsp,%rbp
12b8: 48 89 7d f8 mov %rdi,-0x8(%rbp)
12bc: 48 8b 45 f8 mov -0x8(%rbp),%rax
12c0: 8b 10 mov (%rax),%edx
12c2: 48 8b 45 f8 mov -0x8(%rbp),%rax
12c6: 8b 40 04 mov 0x4(%rax),%eax
12c9: 0f af d0 imul %eax,%edx
12cc: 48 8b 45 f8 mov -0x8(%rbp),%rax
12d0: 8b 40 08 mov 0x8(%rax),%eax
12d3: 0f af c2 imul %edx,%eax
12d6: 5d pop %rbp
12d7: c3 retq
00000000000012d8 <_ZN12solid_objectC1Ev>:
12d8: f3 0f 1e fa endbr64
12dc: 55 push %rbp
12dd: 48 89 e5 mov %rsp,%rbp
12e0: 48 89 7d f8 mov %rdi,-0x8(%rbp)
12e4: 90 nop
12e5: 5d pop %rbp
12e6: c3 retq
12e7: 90 nop
00000000000012e8 <_ZN12solid_objectC1Ei>:
12e8: f3 0f 1e fa endbr64
12ec: 55 push %rbp
12ed: 48 89 e5 mov %rsp,%rbp
12f0: 48 89 7d f8 mov %rdi,-0x8(%rbp)
12f4: 89 75 f4 mov %esi,-0xc(%rbp)
12f7: 48 8b 45 f8 mov -0x8(%rbp),%rax
12fb: 8b 55 f4 mov -0xc(%rbp),%edx
12fe: 89 10 mov %edx,(%rax)
1300: 90 nop
1301: 5d pop %rbp
1302: c3 retq
1303: 90 nop
0000000000001304 <_ZN12solid_object11get_densityEv>:
1304: f3 0f 1e fa endbr64
1308: 55 push %rbp
1309: 48 89 e5 mov %rsp,%rbp
130c: 48 89 7d f8 mov %rdi,-0x8(%rbp)
1310: 48 8b 45 f8 mov -0x8(%rbp),%rax
1314: 8b 00 mov (%rax),%eax
1316: 5d pop %rbp
1317: c3 retq
0000000000001318 <_ZN12solid_object4dumpEv>:
1318: f3 0f 1e fa endbr64
131c: 55 push %rbp
131d: 48 89 e5 mov %rsp,%rbp
1320: 48 83 ec 10 sub $0x10,%rsp
1324: 48 89 7d f8 mov %rdi,-0x8(%rbp)
1328: 48 8b 45 f8 mov -0x8(%rbp),%rax
132c: 8b 00 mov (%rax),%eax
132e: 89 c6 mov %eax,%esi
1330: 48 8d 3d 01 0d 00 00 lea 0xd01(%rip),%rdi # 2038 <_IO_stdin_used+0x38>
1337: b8 00 00 00 00 mov $0x0,%eax
133c: e8 2f fd ff ff callq 1070 <printf@plt>
1341: 90 nop
1342: c9 leaveq
1343: c3 retq
0000000000001344 <_ZN9solid_boxC1Eiiii>:
1344: f3 0f 1e fa endbr64
1348: 55 push %rbp
1349: 48 89 e5 mov %rsp,%rbp
134c: 48 83 ec 20 sub $0x20,%rsp
1350: 48 89 7d f8 mov %rdi,-0x8(%rbp)
1354: 89 75 f4 mov %esi,-0xc(%rbp)
1357: 89 55 f0 mov %edx,-0x10(%rbp)
135a: 89 4d ec mov %ecx,-0x14(%rbp)
135d: 44 89 45 e8 mov %r8d,-0x18(%rbp)
1361: 48 8b 45 f8 mov -0x8(%rbp),%rax
1365: 48 89 c7 mov %rax,%rdi
1368: e8 c3 fe ff ff callq 1230 <_ZN3boxC1Ev>
136d: 48 8b 45 f8 mov -0x8(%rbp),%rax
1371: 48 83 c0 0c add $0xc,%rax
1375: 48 89 c7 mov %rax,%rdi
1378: e8 5b ff ff ff callq 12d8 <_ZN12solid_objectC1Ev>
137d: 48 8b 45 f8 mov -0x8(%rbp),%rax
1381: 8b 55 f4 mov -0xc(%rbp),%edx
1384: 89 10 mov %edx,(%rax)
1386: 48 8b 45 f8 mov -0x8(%rbp),%rax
138a: 8b 55 f0 mov -0x10(%rbp),%edx
138d: 89 50 04 mov %edx,0x4(%rax)
1390: 48 8b 45 f8 mov -0x8(%rbp),%rax
1394: 8b 55 ec mov -0x14(%rbp),%edx
1397: 89 50 08 mov %edx,0x8(%rax)
139a: 48 8b 45 f8 mov -0x8(%rbp),%rax
139e: 8b 55 e8 mov -0x18(%rbp),%edx
13a1: 89 50 0c mov %edx,0xc(%rax)
13a4: 90 nop
13a5: c9 leaveq
13a6: c3 retq
13a7: 90 nop
00000000000013a8 <_ZN9solid_box4dumpEv>:
13a8: f3 0f 1e fa endbr64
13ac: 55 push %rbp
13ad: 48 89 e5 mov %rsp,%rbp
13b0: 48 83 ec 10 sub $0x10,%rsp
13b4: 48 89 7d f8 mov %rdi,-0x8(%rbp)
13b8: 48 8b 45 f8 mov -0x8(%rbp),%rax
13bc: 8b 70 0c mov 0xc(%rax),%esi
13bf: 48 8b 45 f8 mov -0x8(%rbp),%rax
13c3: 8b 48 08 mov 0x8(%rax),%ecx
13c6: 48 8b 45 f8 mov -0x8(%rbp),%rax
13ca: 8b 50 04 mov 0x4(%rax),%edx
13cd: 48 8b 45 f8 mov -0x8(%rbp),%rax
13d1: 8b 00 mov (%rax),%eax
13d3: 41 89 f0 mov %esi,%r8d
13d6: 89 c6 mov %eax,%esi
13d8: 48 8d 3d 81 0c 00 00 lea 0xc81(%rip),%rdi # 2060 <_IO_stdin_used+0x60>
13df: b8 00 00 00 00 mov $0x0,%eax
13e4: e8 87 fc ff ff callq 1070 <printf@plt>
13e9: 90 nop
13ea: c9 leaveq
13eb: c3 retq
00000000000013ec <_ZN9solid_box10get_weightEv>:
13ec: f3 0f 1e fa endbr64
13f0: 55 push %rbp
13f1: 48 89 e5 mov %rsp,%rbp
13f4: 53 push %rbx
13f5: 48 83 ec 18 sub $0x18,%rsp
13f9: 48 89 7d e8 mov %rdi,-0x18(%rbp)
13fd: 48 8b 45 e8 mov -0x18(%rbp),%rax
1401: 48 89 c7 mov %rax,%rdi
1404: e8 a7 fe ff ff callq 12b0 <_ZN3box10get_volumeEv>
1409: 89 c3 mov %eax,%ebx
140b: 48 8b 45 e8 mov -0x18(%rbp),%rax
140f: 48 83 c0 0c add $0xc,%rax
1413: 48 89 c7 mov %rax,%rdi
1416: e8 e9 fe ff ff callq 1304 <_ZN12solid_object11get_densityEv>
141b: 0f af c3 imul %ebx,%eax
141e: 48 83 c4 18 add $0x18,%rsp
1422: 5b pop %rbx
1423: 5d pop %rbp
1424: c3 retq
1425: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
142c: 00 00 00
142f: 90 nop
/*
* arm
*/
000000000040062c <main>:
40062c: a9bc7bfd stp x29, x30, [sp, #-64]!
400630: 910003fd mov x29, sp
400634: 9100c3a0 add x0, x29, #0x30
400638: 528003c3 mov w3, #0x1e // #30
40063c: 52800282 mov w2, #0x14 // #20
400640: 52800141 mov w1, #0xa // #10
400644: 9400001e bl 4006bc <_ZN3boxC1Eiii>
400648: 9100a3a0 add x0, x29, #0x28
40064c: 52800c81 mov w1, #0x64 // #100
400650: 9400004c bl 400780 <_ZN12solid_objectC1Ei>
400654: 910063a0 add x0, x29, #0x18
400658: 52800064 mov w4, #0x3 // #3
40065c: 528003c3 mov w3, #0x1e // #30
400660: 52800282 mov w2, #0x14 // #20
400664: 52800141 mov w1, #0xa // #10
400668: 94000060 bl 4007e8 <_ZN9solid_boxC1Eiiii>
40066c: 9100c3a0 add x0, x29, #0x30
400670: 94000024 bl 400700 <_ZN3box4dumpEv>
400674: 9100a3a0 add x0, x29, #0x28
400678: 94000051 bl 4007bc <_ZN12solid_object4dumpEv>
40067c: 910063a0 add x0, x29, #0x18
400680: 94000075 bl 400854 <_ZN9solid_box4dumpEv>
400684: 910063a0 add x0, x29, #0x18
400688: 94000084 bl 400898 <_ZN9solid_box10get_weightEv>
40068c: 2a0003e1 mov w1, w0
400690: 90000000 adrp x0, 400000 <_init-0x4b8>
400694: 91286000 add x0, x0, #0xa18
400698: 97ffffa2 bl 400520 <printf@plt>
40069c: 52800000 mov w0, #0x0 // #0
4006a0: a8c47bfd ldp x29, x30, [sp], #64
4006a4: d65f03c0 ret
00000000004006a8 <_ZN3boxC1Ev>:
4006a8: d10043ff sub sp, sp, #0x10
4006ac: f90007e0 str x0, [sp, #8]
4006b0: d503201f nop
4006b4: 910043ff add sp, sp, #0x10
4006b8: d65f03c0 ret
00000000004006bc <_ZN3boxC1Eiii>:
4006bc: d10083ff sub sp, sp, #0x20
4006c0: f9000fe0 str x0, [sp, #24]
4006c4: b90017e1 str w1, [sp, #20]
4006c8: b90013e2 str w2, [sp, #16]
4006cc: b9000fe3 str w3, [sp, #12]
4006d0: f9400fe0 ldr x0, [sp, #24]
4006d4: b94017e1 ldr w1, [sp, #20]
4006d8: b9000001 str w1, [x0]
4006dc: f9400fe0 ldr x0, [sp, #24]
4006e0: b94013e1 ldr w1, [sp, #16]
4006e4: b9000401 str w1, [x0, #4]
4006e8: f9400fe0 ldr x0, [sp, #24]
4006ec: b9400fe1 ldr w1, [sp, #12]
4006f0: b9000801 str w1, [x0, #8]
4006f4: d503201f nop
4006f8: 910083ff add sp, sp, #0x20
4006fc: d65f03c0 ret
0000000000400700 <_ZN3box4dumpEv>:
400700: a9be7bfd stp x29, x30, [sp, #-32]!
400704: 910003fd mov x29, sp
400708: f9000fa0 str x0, [x29, #24]
40070c: f9400fa0 ldr x0, [x29, #24]
400710: b9400001 ldr w1, [x0]
400714: f9400fa0 ldr x0, [x29, #24]
400718: b9400402 ldr w2, [x0, #4]
40071c: f9400fa0 ldr x0, [x29, #24]
400720: b9400803 ldr w3, [x0, #8]
400724: 90000000 adrp x0, 400000 <_init-0x4b8>
400728: 91260000 add x0, x0, #0x980
40072c: 97ffff7d bl 400520 <printf@plt>
400730: d503201f nop
400734: a8c27bfd ldp x29, x30, [sp], #32
400738: d65f03c0 ret
000000000040073c <_ZN3box10get_volumeEv>:
40073c: d10043ff sub sp, sp, #0x10
400740: f90007e0 str x0, [sp, #8]
400744: f94007e0 ldr x0, [sp, #8]
400748: b9400001 ldr w1, [x0]
40074c: f94007e0 ldr x0, [sp, #8]
400750: b9400400 ldr w0, [x0, #4]
400754: 1b007c21 mul w1, w1, w0
400758: f94007e0 ldr x0, [sp, #8]
40075c: b9400800 ldr w0, [x0, #8]
400760: 1b007c20 mul w0, w1, w0
400764: 910043ff add sp, sp, #0x10
400768: d65f03c0 ret
000000000040076c <_ZN12solid_objectC1Ev>:
40076c: d10043ff sub sp, sp, #0x10
400770: f90007e0 str x0, [sp, #8]
400774: d503201f nop
400778: 910043ff add sp, sp, #0x10
40077c: d65f03c0 ret
0000000000400780 <_ZN12solid_objectC1Ei>:
400780: d10043ff sub sp, sp, #0x10
400784: f90007e0 str x0, [sp, #8]
400788: b90007e1 str w1, [sp, #4]
40078c: f94007e0 ldr x0, [sp, #8]
400790: b94007e1 ldr w1, [sp, #4]
400794: b9000001 str w1, [x0]
400798: d503201f nop
40079c: 910043ff add sp, sp, #0x10
4007a0: d65f03c0 ret
00000000004007a4 <_ZN12solid_object11get_densityEv>:
4007a4: d10043ff sub sp, sp, #0x10
4007a8: f90007e0 str x0, [sp, #8]
4007ac: f94007e0 ldr x0, [sp, #8]
4007b0: b9400000 ldr w0, [x0]
4007b4: 910043ff add sp, sp, #0x10
4007b8: d65f03c0 ret
00000000004007bc <_ZN12solid_object4dumpEv>:
4007bc: a9be7bfd stp x29, x30, [sp, #-32]!
4007c0: 910003fd mov x29, sp
4007c4: f9000fa0 str x0, [x29, #24]
4007c8: f9400fa0 ldr x0, [x29, #24]
4007cc: b9400001 ldr w1, [x0]
4007d0: 90000000 adrp x0, 400000 <_init-0x4b8>
4007d4: 9126c000 add x0, x0, #0x9b0
4007d8: 97ffff52 bl 400520 <printf@plt>
4007dc: d503201f nop
4007e0: a8c27bfd ldp x29, x30, [sp], #32
4007e4: d65f03c0 ret
00000000004007e8 <_ZN9solid_boxC1Eiiii>:
4007e8: a9bd7bfd stp x29, x30, [sp, #-48]!
4007ec: 910003fd mov x29, sp
4007f0: f90017a0 str x0, [x29, #40]
4007f4: b90027a1 str w1, [x29, #36]
4007f8: b90023a2 str w2, [x29, #32]
4007fc: b9001fa3 str w3, [x29, #28]
400800: b9001ba4 str w4, [x29, #24]
400804: f94017a0 ldr x0, [x29, #40]
400808: 97ffffa8 bl 4006a8 <_ZN3boxC1Ev>
40080c: f94017a0 ldr x0, [x29, #40]
400810: 91003000 add x0, x0, #0xc
400814: 97ffffd6 bl 40076c <_ZN12solid_objectC1Ev>
400818: f94017a0 ldr x0, [x29, #40]
40081c: b94027a1 ldr w1, [x29, #36]
400820: b9000001 str w1, [x0]
400824: f94017a0 ldr x0, [x29, #40]
400828: b94023a1 ldr w1, [x29, #32]
40082c: b9000401 str w1, [x0, #4]
400830: f94017a0 ldr x0, [x29, #40]
400834: b9401fa1 ldr w1, [x29, #28]
400838: b9000801 str w1, [x0, #8]
40083c: f94017a0 ldr x0, [x29, #40]
400840: b9401ba1 ldr w1, [x29, #24]
400844: b9000c01 str w1, [x0, #12]
400848: d503201f nop
40084c: a8c37bfd ldp x29, x30, [sp], #48
400850: d65f03c0 ret
0000000000400854 <_ZN9solid_box4dumpEv>:
400854: a9be7bfd stp x29, x30, [sp, #-32]!
400858: 910003fd mov x29, sp
40085c: f9000fa0 str x0, [x29, #24]
400860: f9400fa0 ldr x0, [x29, #24]
400864: b9400001 ldr w1, [x0]
400868: f9400fa0 ldr x0, [x29, #24]
40086c: b9400402 ldr w2, [x0, #4]
400870: f9400fa0 ldr x0, [x29, #24]
400874: b9400803 ldr w3, [x0, #8]
400878: f9400fa0 ldr x0, [x29, #24]
40087c: b9400c04 ldr w4, [x0, #12]
400880: 90000000 adrp x0, 400000 <_init-0x4b8>
400884: 91276000 add x0, x0, #0x9d8
400888: 97ffff26 bl 400520 <printf@plt>
40088c: d503201f nop
400890: a8c27bfd ldp x29, x30, [sp], #32
400894: d65f03c0 ret
0000000000400898 <_ZN9solid_box10get_weightEv>:
400898: a9bd7bfd stp x29, x30, [sp, #-48]!
40089c: 910003fd mov x29, sp
4008a0: f9000bf3 str x19, [sp, #16]
4008a4: f90017a0 str x0, [x29, #40]
4008a8: f94017a0 ldr x0, [x29, #40]
4008ac: 97ffffa4 bl 40073c <_ZN3box10get_volumeEv>
4008b0: 2a0003f3 mov w19, w0
4008b4: f94017a0 ldr x0, [x29, #40]
4008b8: 91003000 add x0, x0, #0xc
4008bc: 97ffffba bl 4007a4 <_ZN12solid_object11get_densityEv>
4008c0: 1b007e60 mul w0, w19, w0
4008c4: f9400bf3 ldr x19, [sp, #16]
4008c8: a8c37bfd ldp x29, x30, [sp], #48
4008cc: d65f03c0 ret
#endif
博客展示了多重继承的 C++ 代码示例,定义了 box、solid_object 和 solid_box 类,实现了相关属性和方法。同时给出了对应代码的汇编代码,包含 main 函数及各成员函数的汇编指令,有助于理解代码底层执行逻辑。

被折叠的 条评论
为什么被折叠?



