微软面试题小计(一)

#include <stdafx.h>
#include <iostream>
using namespace std;

class A{                       //A的大小是4
public:
     int a;
};

class B:public A{         //B的大小是8
public:
     int b;
};

void set(A *d,int ind){ //类型转换了,传的都是指针,而访问的时候是按照形参类型访问的;
     d[ind].a=2;           //计算地址就计算错了
}

int main(){
     B data[4];
     for(int i=0;i<4;i++){
          data[i].a=1;
          data[i].b=1;
          set(data,i);
     }
     for(int i=0;i<4;i++){
          cout<<data[i].a<<data[i].b;
     }

     system("pause");
     return 0;
}
 
The correct result is : 22221111.
posted @ 2014-03-24 11:17  knight_base  阅读(127)  评论(0)    收藏  举报