微软面试题小计(一)
#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;
}
#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.

浙公网安备 33010602011771号