zoukankan      html  css  js  c++  java
  • 类继承

     
     1 #include <stdio.h>                                                                                                 
     2 
     3 class CSofa
     4 {
     5     public: 
     6         CSofa() 
     7         {       
     8             m_nColor = 2;
     9         }       
    10        
    11         virtual ~CSofa()
    12         {       
    13             printf("virtual ~CSofa() \r\n");
    14         }       
    15 
    16         virtual int GetColor()
    17         {       
    18             return m_nColor;
    19         }       
    20 
    21         virtual int SitDown()
    22         {       
    23             return printf("Sit down and rest your legs \r\n");
    24         }       
    25 
    26     protected:
    27         int m_nColor;
    28 };
    29 
    30 class CBed
    31 {
    32     public: 
    33         CBed()  
    34         {       
    35             m_nLength = 4;
    36             m_nWidth = 5;
    37         }       
    38 
    39         virtual ~CBed() 
    40         {
    41             printf("virtual ~CBed() \r\n");
    42         }
    43 
    44         virtual int GetArea()
    45         {
    46             return m_nLength * m_nWidth;
    47         }
    48 
    49         virtual int Sleep()
    50         {
    51             return printf("go to sleep \r\n");
    52         }
    53 
    54     protected:
    55         int m_nLength;
    56         int m_nWidth;
    57 };
    58 
    59 class CSofaBed : public CSofa, public CBed
    60 {
    61     public:
    62         CSofaBed()
    63         {
    64             m_nHeight = 6;
    65         }
    66 
    67         virtual ~CSofaBed()
    68         {
    69             printf("virtual ~CSofaBed() \r\n");
    70         }
    71 
    72         virtual int SitDown()
    73         {
    74             return printf("Sit down on the sofa bed \r\n");
    75         }
    76 
    77         virtual int Sleep()
    78         {
    79             return printf("go to sleep on the sofa bed \r\n");    
    80         }
    81 
    82         virtual int GetHeight()
    83         {
    84             return m_nHeight;
    85         }
    86 
    87     protected:
    88         int m_nHeight;
    89 };
    90 
    91 
    92 int main(void)
    93 {
    94 
    95     CSofaBed first;
    96     return 0;
    97 }             

    重点关注下构造函数,析构函数的调用,虚表指针的赋值,虚表的构成

      1 08048f40 <main>:                                                                                                   
      2  8048f40:   55                      push   %ebp
      3  8048f41:   89 e5                   mov    %esp,%ebp
      4  8048f43:   53                      push   %ebx
      5  8048f44:   83 e4 f0                and    $0xfffffff0,%esp
      6  8048f47:   83 ec 30                sub    $0x30,%esp
      7  8048f4a:   8d 44 24 18             lea    0x18(%esp),%eax
      8  8048f4e:   89 04 24                mov    %eax,(%esp)
      9  8048f51:   e8 3e 01 00 00          call   8049094 <_ZN8CSofaBedC1Ev> CSofaBed::CSofaBed()
     10  8048f56:   bb 00 00 00 00          mov    $0x0,%ebx
     11  8048f5b:   8d 44 24 18             lea    0x18(%esp),%eax
     12  8048f5f:   89 04 24                mov    %eax,(%esp)
     13  8048f62:   e8 75 01 00 00          call   80490dc <_ZN8CSofaBedD1Ev> CSofaBed::~CSofaBed()
     14  8048f67:   89 d8                   mov    %ebx,%eax
     15  8048f69:   8b 5d fc                mov    -0x4(%ebp),%ebx
     16  8048f6c:   c9                      leave   
     17  8048f6d:   c3                      ret     
     18 
     19 08048f6e <_ZN5CSofaC1Ev>: CSofa::CSofa()
     20  8048f6e:   55                      push   %ebp
     21  8048f6f:   89 e5                   mov    %esp,%ebp
     22  8048f71:   8b 45 08                mov    0x8(%ebp),%eax
     23  8048f74:   c7 00 18 f9 0c 08       movl   $0x80cf918,(%eax) vtable for CSofa
     24  8048f7a:   8b 45 08                mov    0x8(%ebp),%eax
     25  8048f7d:   c7 40 04 02 00 00 00    movl   $0x2,0x4(%eax)
     26  8048f84:   5d                      pop    %ebp    
     27  8048f85:   c3                      ret     
     28 
     29 08048f86 <_ZN5CSofaD1Ev>: CSofa::~CSofa()
     30  8048f86:   55                      push   %ebp
     31  8048f87:   89 e5                   mov    %esp,%ebp
     32  8048f89:   83 ec 18                sub    $0x18,%esp
     33  8048f8c:   8b 45 08                mov    0x8(%ebp),%eax
     34  8048f8f:   c7 00 18 f9 0c 08       movl   $0x80cf918,(%eax)
     35  8048f95:   c7 04 24 08 f8 0c 08    movl   $0x80cf808,(%esp)
     36  8048f9c:   e8 af ef 00 00          call   8057f50 <_IO_puts>
     37  8048fa1:   b8 00 00 00 00          mov    $0x0,%eax
     38  8048fa6:   83 e0 01                and    $0x1,%eax
     39  8048fa9:   84 c0                   test   %al,%al 
     40  8048fab:   74 0b                   je     8048fb8 <_ZN5CSofaD1Ev+0x32>
     41  8048fad:   8b 45 08                mov    0x8(%ebp),%eax
     42  8048fb0:   89 04 24                mov    %eax,(%esp)
     43  8048fb3:   e8 f8 07 00 00          call   80497b0 <_ZdlPv>
     44  8048fb8:   c9                      leave  
     45  8048fb9:   c3                      ret    
     46 
     47 08048fba <_ZN5CSofaD0Ev>: CSofa::~CSofa()
     48  8048fba:   55                      push   %ebp
     49  8048fbb:   89 e5                   mov    %esp,%ebp
     50  8048fbd:   83 ec 18                sub    $0x18,%esp
     51  8048fc0:   8b 45 08                mov    0x8(%ebp),%eax
     52  8048fc3:   89 04 24                mov    %eax,(%esp)
     53  8048fc6:   e8 bb ff ff ff          call   8048f86 <_ZN5CSofaD1Ev>
     54  8048fcb:   8b 45 08                mov    0x8(%ebp),%eax
     55  8048fce:   89 04 24                mov    %eax,(%esp)
     56  8048fd1:   e8 da 07 00 00          call   80497b0 <_ZdlPv>
     57  8048fd6:   c9                      leave  
     58  8048fd7:   c3                      ret    
     59 
     60 08048fd8 <_ZN5CSofa8GetColorEv>: CSofa::GetColor()
     61  8048fd8:   55                      push   %ebp
     62  8048fd9:   89 e5                   mov    %esp,%ebp
     63  8048fdb:   8b 45 08                mov    0x8(%ebp),%eax
     64  8048fde:   8b 40 04                mov    0x4(%eax),%eax
     65  8048fe1:   5d                      pop    %ebp
     66  8048fe2:   c3                      ret    
     67  8048fe3:   90                      nop
     68 
     69 08048fe4 <_ZN5CSofa7SitDownEv>: CSofa::SitDown()
     70  8048fe4:   55                      push   %ebp
     71  8048fe5:   89 e5                   mov    %esp,%ebp
     72  8048fe7:   83 ec 18                sub    $0x18,%esp
     73  8048fea:   c7 04 24 1c f8 0c 08    movl   $0x80cf81c,(%esp)
     74  8048ff1:   e8 8a ec 00 00          call   8057c80 <_IO_printf>
     75  8048ff6:   c9                      leave  
     76  8048ff7:   c3                      ret    
     77 
     78 08048ff8 <_ZN4CBedC1Ev>: CBed::CBed()
     79  8048ff8:   55                      push   %ebp
     80  8048ff9:   89 e5                   mov    %esp,%ebp 
     81  8048ffb:   8b 45 08                mov    0x8(%ebp),%eax
     82  8048ffe:   c7 00 00 f9 0c 08       movl   $0x80cf900,(%eax) vtable for CBed
     83  8049004:   8b 45 08                mov    0x8(%ebp),%eax
     84  8049007:   c7 40 04 04 00 00 00    movl   $0x4,0x4(%eax)
     85  804900e:   8b 45 08                mov    0x8(%ebp),%eax
     86  8049011:   c7 40 08 05 00 00 00    movl   $0x5,0x8(%eax)
     87  8049018:   5d                      pop    %ebp
     88  8049019:   c3                      ret    
     89 
     90 0804901a <_ZN4CBedD1Ev>: CBed::~CBed()
     91  804901a:   55                      push   %ebp
     92  804901b:   89 e5                   mov    %esp,%ebp
     93  804901d:   83 ec 18                sub    $0x18,%esp
     94  8049020:   8b 45 08                mov    0x8(%ebp),%eax
     95  8049023:   c7 00 00 f9 0c 08       movl   $0x80cf900,(%eax)
     96  8049029:   c7 04 24 3b f8 0c 08    movl   $0x80cf83b,(%esp)
     97  8049030:   e8 1b ef 00 00          call   8057f50 <_IO_puts>
     98  8049035:   b8 00 00 00 00          mov    $0x0,%eax
     99  804903a:   83 e0 01                and    $0x1,%eax
    100  804903d:   84 c0                   test   %al,%al
    101  804903f:   74 0b                   je     804904c <_ZN4CBedD1Ev+0x32> CBed::~CBed() + 0x32
    102  8049041:   8b 45 08                mov    0x8(%ebp),%eax
    103  8049044:   89 04 24                mov    %eax,(%esp)
    104  8049047:   e8 64 07 00 00          call   80497b0 <_ZdlPv>
    105  804904c:   c9                      leave  
    106  804904d:   c3                      ret    
    107 
    108 0804904e <_ZN4CBedD0Ev>: CBed::~CBed()
    109  804904e:   55                      push   %ebp
    110  804904f:   89 e5                   mov    %esp,%ebp
    111  8049051:   83 ec 18                sub    $0x18,%esp
    112  8049054:   8b 45 08                mov    0x8(%ebp),%eax
    113  8049057:   89 04 24                mov    %eax,(%esp)
    114  804905a:   e8 bb ff ff ff          call   804901a <_ZN4CBedD1Ev>
    115  804905f:   8b 45 08                mov    0x8(%ebp),%eax
    116  8049062:   89 04 24                mov    %eax,(%esp)
    117  8049065:   e8 46 07 00 00          call   80497b0 <_ZdlPv>
    118  804906a:   c9                      leave  
    119  804906b:   c3                      ret    
    120                                                  
    121 0804906c <_ZN4CBed7GetAreaEv>: CBed::GetArea()
    122  804906c:   55                      push   %ebp
    123  804906d:   89 e5                   mov    %esp,%ebp
    124  804906f:   8b 45 08                mov    0x8(%ebp),%eax
    125  8049072:   8b 50 04                mov    0x4(%eax),%edx
    126  8049075:   8b 45 08                mov    0x8(%ebp),%eax
    127  8049078:   8b 40 08                mov    0x8(%eax),%eax
    128  804907b:   0f af c2                imul   %edx,%eax
    129  804907e:   5d                      pop    %ebp
    130  804907f:   c3                      ret    
    131 
    132 08049080 <_ZN4CBed5SleepEv>: CBed::Sleep()
    133  8049080:   55                      push   %ebp
    134  8049081:   89 e5                   mov    %esp,%ebp
    135  8049083:   83 ec 18                sub    $0x18,%esp
    136  8049086:   c7 04 24 4d f8 0c 08    movl   $0x80cf84d,(%esp)
    137  804908d:   e8 ee eb 00 00          call   8057c80 <_IO_printf>
    138  8049092:   c9                      leave  
    139  8049093:   c3                      ret    
    140 
    141 08049094 <_ZN8CSofaBedC1Ev>: CSofaBed::CSofaBed()
    142  8049094:   55                      push   %ebp
    143  8049095:   89 e5                   mov    %esp,%ebp
    144  8049097:   83 ec 18                sub    $0x18,%esp
    145  804909a:   8b 45 08                mov    0x8(%ebp),%eax
    146  804909d:   89 04 24                mov    %eax,(%esp)
    147  80490a0:   e8 c9 fe ff ff          call   8048f6e <_ZN5CSofaC1Ev> CSofa::CSofa()
    148  80490a5:   8b 45 08                mov    0x8(%ebp),%eax
    149  80490a8:   83 c0 08                add    $0x8,%eax
    150  80490ab:   89 04 24                mov    %eax,(%esp)
    151  80490ae:   e8 45 ff ff ff          call   8048ff8 <_ZN4CBedC1Ev> CBed::CBed()
    152  80490b3:   8b 45 08                mov    0x8(%ebp),%eax
    153  80490b6:   c7 00 c8 f8 0c 08       movl   $0x80cf8c8,(%eax) vtable for CSofaBed
    154  80490bc:   8b 45 08                mov    0x8(%ebp),%eax
    155  80490bf:   c7 40 08 e8 f8 0c 08    movl   $0x80cf8e8,0x8(%eax)
    156  80490c6:   8b 45 08                mov    0x8(%ebp),%eax
    157  80490c9:   c7 40 14 06 00 00 00    movl   $0x6,0x14(%eax)
    158  80490d0:   c9                      leave  
    159  80490d1:   c3                      ret    
    160                                       
    161 080490d2 <_ZThn8_N8CSofaBedD1Ev>: non-virtual thunk to CSofaBed::~CSofaBed()
    162  80490d2:   83 6c 24 04 08          subl   $0x8,0x4(%esp)
    163  80490d7:   e9 00 00 00 00          jmp    80490dc <_ZN8CSofaBedD1Ev>
    164 
    165 080490dc <_ZN8CSofaBedD1Ev>: CSofaBed::~CSofaBed()
    166  80490dc:   55                      push   %ebp
    167  80490dd:   89 e5                   mov    %esp,%ebp
    168  80490df:   53                      push   %ebx
    169  80490e0:   83 ec 14                sub    $0x14,%esp
    170  80490e3:   8b 45 08                mov    0x8(%ebp),%eax
    171  80490e6:   c7 00 c8 f8 0c 08       movl   $0x80cf8c8,(%eax)
    172  80490ec:   8b 45 08                mov    0x8(%ebp),%eax
    173  80490ef:   c7 40 08 e8 f8 0c 08    movl   $0x80cf8e8,0x8(%eax)
    174  80490f6:   c7 04 24 5c f8 0c 08    movl   $0x80cf85c,(%esp)
    175  80490fd:   e8 4e ee 00 00          call   8057f50 <_IO_puts>
    176  8049102:   8b 45 08                mov    0x8(%ebp),%eax
    177  8049105:   83 c0 08                add    $0x8,%eax
    178  8049108:   89 04 24                mov    %eax,(%esp)
    179  804910b:   e8 0a ff ff ff          call   804901a <_ZN4CBedD1Ev> CBed::~CBed()
    180  8049110:   8b 45 08                mov    0x8(%ebp),%eax
    181  8049113:   89 04 24                mov    %eax,(%esp)
    182  8049116:   e8 6b fe ff ff          call   8048f86 <_ZN5CSofaD1Ev>
    183  804911b:   b8 00 00 00 00          mov    $0x0,%eax
    184  8049120:   83 e0 01                and    $0x1,%eax
    185  8049123:   84 c0                   test   %al,%al
    186  8049125:   74 36                   je     804915d <_ZN8CSofaBedD1Ev+0x81>
    187  8049127:   8b 45 08                mov    0x8(%ebp),%eax
    188  804912a:   89 04 24                mov    %eax,(%esp)
    189  804912d:   e8 7e 06 00 00          call   80497b0 <_ZdlPv>
    190  8049132:   eb 29                   jmp    804915d <_ZN8CSofaBedD1Ev+0x81>
    191  8049134:   89 c3                   mov    %eax,%ebx
    192  8049136:   8b 45 08                mov    0x8(%ebp),%eax
    193  8049139:   83 c0 08                add    $0x8,%eax
    194  804913c:   89 04 24                mov    %eax,(%esp)
    195  804913f:   e8 d6 fe ff ff          call   804901a <_ZN4CBedD1Ev>
    196  8049144:   eb 02                   jmp    8049148 <_ZN8CSofaBedD1Ev+0x6c> CSofaBed::~CSofaBed()
    197  8049146:   89 c3                   mov    %eax,%ebx
    198  8049148:   8b 45 08                mov    0x8(%ebp),%eax
    199  804914b:   89 04 24                mov    %eax,(%esp)
    200  804914e:   e8 33 fe ff ff          call   8048f86 <_ZN5CSofaD1Ev> CSofa::~CSofa()
    201 
    202  8049153:   89 d8                   mov    %ebx,%eax
    203  8049155:   89 04 24                mov    %eax,(%esp)
    204  8049158:   e8 b3 bf 00 00          call   8055110 <_Unwind_Resume>
    205  804915d:   83 c4 14                add    $0x14,%esp
    206  8049160:   5b                      pop    %ebx
    207  8049161:   5d                      pop    %ebp
    208  8049162:   c3                      ret    
    209  8049163:   90                      nop
    210 
    211 08049164 <_ZThn8_N8CSofaBedD0Ev>: non-virtual thunk to CSofaBed::~CSofaBed()
    212  8049164:   83 6c 24 04 08          subl   $0x8,0x4(%esp)
    213  8049169:   eb 01                   jmp    804916c <_ZN8CSofaBedD0Ev>
    214  804916b:   90                      nop
    215 
    216 0804916c <_ZN8CSofaBedD0Ev>: CSofaBed::~CSofaBed()
    217  804916c:   55                      push   %ebp
    218  804916d:   89 e5                   mov    %esp,%ebp
    219  804916f:   83 ec 18                sub    $0x18,%esp
    220  8049172:   8b 45 08                mov    0x8(%ebp),%eax
    221  8049175:   89 04 24                mov    %eax,(%esp)
    222  8049178:   e8 5f ff ff ff          call   80490dc <_ZN8CSofaBedD1Ev>
    223  804917d:   8b 45 08                mov    0x8(%ebp),%eax
    224  8049180:   89 04 24                mov    %eax,(%esp)
    225  8049183:   e8 28 06 00 00          call   80497b0 <_ZdlPv>
    226  8049188:   c9                      leave  
    227  8049189:   c3                      ret    
    228 
    229 0804918a <_ZN8CSofaBed7SitDownEv>: CSofaBed::SitDown()
    230  804918a:   55                      push   %ebp
    231  804918b:   89 e5                   mov    %esp,%ebp
    232  804918d:   83 ec 18                sub    $0x18,%esp
    233  8049190:   c7 04 24 72 f8 0c 08    movl   $0x80cf872,(%esp)
    234  8049197:   e8 e4 ea 00 00          call   8057c80 <_IO_printf>
    235  804919c:   c9                      leave  
    236  804919d:   c3                      ret    
    237 
    238 0804919e <_ZThn8_N8CSofaBed5SleepEv>: non-virtual thunk to CSofaBed::Sleep()
    239  804919e:   83 6c 24 04 08          subl   $0x8,0x4(%esp)
    240  80491a3:   eb 01                   jmp    80491a6 <_ZN8CSofaBed5SleepEv>
    241  80491a5:   90                      nop       
    242 
    243 080491a6 <_ZN8CSofaBed5SleepEv>: CSofaBed::Sleep()
    244  80491a6:   55                      push   %ebp
    245  80491a7:   89 e5                   mov    %esp,%ebp
    246  80491a9:   83 ec 18                sub    $0x18,%esp
    247  80491ac:   c7 04 24 90 f8 0c 08    movl   $0x80cf890,(%esp)
    248  80491b3:   e8 c8 ea 00 00          call   8057c80 <_IO_printf>
    249  80491b8:   c9                      leave  
    250  80491b9:   c3                      ret    
    251 
    252 080491ba <_ZN8CSofaBed9GetHeightEv>: CSofaBed::GetHeight()
    253  80491ba:   55                      push   %ebp
    254  80491bb:   89 e5                   mov    %esp,%ebp
    255  80491bd:   8b 45 08                mov    0x8(%ebp),%eax
    256  80491c0:   8b 40 14                mov    0x14(%eax),%eax
    257  80491c3:   5d                      pop    %ebp
    258  80491c4:   c3                      ret    
    259  80491c5:   90                      nop
    260  80491c6:   90                      nop
    261  80491c7:   90                      nop
    262  80491c8:   90                      nop
    263  80491c9:   90                      nop
    264  80491ca:   90                      nop
    265  80491cb:   90                      nop
    266  80491cc:   90                      nop
    267  80491cd:   90                      nop
    268  80491ce:   90                      nop
    269  80491cf:   90                      nop
    270 
    271 
    272 080cf8c0 <_ZTV8CSofaBed>: vtable for CSofaBed
    273  80cf8c0:   00 00 00 00                 
    274  80cf8c4:   40 f9 0c 08  typeinfo for CSofaBed                  
    275  80cf8c8:   dc 90 04 08  CSofaBed::~CSofaBed()
    276  80cf8cc:   6c 91 04 08  CSofaBed::~CSofaBed()                  
    277  80cf8d0:   d8 8f 04 08  CSofa::GetColor()
    278  80cf8d4:   8a 91 04 08  CSofaBed::SitDown()                
    279  80cf8d8:   a6 91 04 08  CSofaBed::Sleep()                                  
    280  80cf8dc:   ba 91 04 08  CSofaBed::GetHeight()  
    281  80cf8e0:   f8 ff ff ff                                         
    282  80cf8e4:   40 f9 0c 08  typeinfo for CSofaBed 
    283  80cf8e8:   d2 90 04 08  non-virtual thunk to CSofaBed::~CSofaBed()
    284  80cf8ec:   64 91 04 08  non-virtual thunk to CSofaBed::~CSofaBed()               
    285  80cf8f0:   6c 90 04 08  CBed::GetArea()                
    286  80cf8f6:   9e 91 04 08  non-virtual thunk to CSofaBed::Sleep()                 
    287 
    288 080cf8f8 <_ZTV4CBed>: vtable for CBed
    289  80cf8f8:   00 00 00 00                 
    290  80cf8fc:   68 f9 0c 08 typeinfo for CBed
    291  80cf900:   1a 90 04 08 CBed::~CBed()                   
    292  80cf904:   4e 90 04 08 CBed::~CBed()                   
    293  80cf908:   6c 90 04 08 CBed::GetArea()                 
    294  80cf90c:   80 90 04 08 CBed::Sleep()
    295 
    296 080cf910 <_ZTV5CSofa>: vtable for CSofa
    297  80cf910:   00 00 00 00                
    298  80cf916:   78 f9 0c 08  typeinfo for CSofa                 
    299  80cf918:   86 8f 04 08  CSofa::~CSofa() 
    300  80cf91c:   ba 8f 04 08  CSofa::~CSofa()                
    301  80cf920:   d8 8f 04 08  CSofa::GetColor()  
    302  80cf926:   e4 8f 04 08  CSofa::SitDown()                   
    303 
    304 080cf928 <_ZTS8CSofaBed>: typeinfo name for CSofaBed
    305  80cf928:   38 43 53                cmp    %al,0x53(%ebx)
    306  80cf92b:   6f                      outsl  %ds:(%esi),(%dx)
    307  80cf92c:   66 61                   popaw  
    308  80cf92e:   42                      inc    %edx
    309  80cf92f:   65 64 00 00             gs add %al,%fs:%gs:(%eax)
    310     ...
    311 
    312 080cf940 <_ZTI8CSofaBed>: typeinfo for CSofaBed
    313  80cf940:   68 ae 0f 08 28          push   $0x28080fae
    314  80cf945:   f9                      stc    
    315  80cf946:   0c 08                   or     $0x8,%al
    316  80cf948:   00 00                   add    %al,(%eax)
    317  80cf94a:   00 00                   add    %al,(%eax)
    318  80cf94c:   02 00                   add    (%eax),%al
    319  80cf94e:   00 00                   add    %al,(%eax)
    320  80cf950:   78 f9                   js     80cf94b <_ZTI8CSofaBed+0xb>
    321  80cf952:   0c 08                   or     $0x8,%al
    322  80cf954:   02 00                   add    (%eax),%al   
    323  80cf956:   00 00                   add    %al,(%eax)
    324  80cf958:   68 f9 0c 08 02          push   $0x2080cf9
    325  80cf95d:   08 00                   or     %al,(%eax)
    326     ...
    327 
    328 080cf960 <_ZTS4CBed>: typeinfo name for CBed
    329  80cf960:   34 43                   xor    $0x43,%al
    330  80cf962:   42                      inc    %edx
    331  80cf963:   65 64 00 00             gs add %al,%fs:%gs:(%eax)
    332     ...
    333 
    334 080cf968 <_ZTI4CBed>: typeinfo for CBed
    335  80cf968:   a8 ad                   test   $0xad,%al
    336  80cf96a:   0f 08                   invd   
    337  80cf96c:   60                      pusha  
    338  80cf96d:   f9                      stc    
    339  80cf96e:   0c 08                   or     $0x8,%al
    340 
    341 080cf970 <_ZTS5CSofa>: typeinfo name for CSofa
    342  80cf970:   35 43 53 6f 66          xor    $0x666f5343,%eax
    343  80cf975:   61                      popa   
    344     ...
    345 
    346 080cf978 <_ZTI5CSofa>: typeinfo for CSofa
    347  80cf978:   a8 ad                   test   $0xad,%al
    348  80cf97a:   0f 08                   invd   
    349  80cf97c:   70 f9                   jo     80cf977 <_ZTS5CSofa+0x7>
    350  80cf97e:   0c 08                   or     $0x8,%al 
  • 相关阅读:
    使用python发送(SMTP)qq邮件
    google hack
    python多线程爬取网页
    windows自带的颜色编辑器居中
    (转)如何在任务栏添加托盘图标
    c++ 字符串转数字或数字转字符串
    (转)null和NULL和nullptr和””区别
    Windows系统自带选择文件的对话重写和居中处理
    ANSII 与Unicode,Utf8之间的转换
    (转) Windows如何区分鼠标双击和两次单击
  • 原文地址:https://www.cnblogs.com/openix/p/2941742.html
Copyright © 2011-2022 走看看