南京爱立信笔试一题
来源:互联网 发布:吉林农业大学网络课 编辑:程序博客网 时间:2024/05/17 04:43
#include<iostream> #include<stdio.h> using namespace std; class base { public: base(){cout<<"base::base()\n";} virtual ~base(){cout<<"base::~base()\n";} void func1(){cout<<"base::func1()\n";} virtual void func2(){cout<<"base::func2()\n";} private : int a;}; class inherited:public base { public: inherited(){cout<<"inherited::inherited()\n";}~inherited(){cout<<"inherited::~inherited()\n";} void func1(){cout<<"inherited::func1()\n";}void func2(){cout<<"inherited::func2()\n";}private : int b; }; void func1() { inherited a;base b; printf("sizeof child class is %d\n,and the address of child class is %0x\n",sizeof(a),&a); printf("sizeof parent class is %d\n,and the address of parent class is %0x\n",sizeof(b),&b); cout << "-----------------------1" << endl; base *pb; pb=(base*)&a; printf("pb 's address is %0x\n",pb); cout << "-----------------------2" << endl; pb->func1(); //fun1是非虚函数,所以没有动态绑定的情况,主要看指针类型 cout << "-----------------------3" << endl; pb->func2(); //fun2是虚函数,有动态绑定,主要要看指针指向哪个对象 cout << "-----------------------4" << endl;}void func2(){ inherited * pa=new inherited; printf("child's address is %0x\n",pa); base * pb=(base*)pa; printf("after transfer the address is %0x\n",pb);pb->func1();pb->func2();delete pa; } int main() { cout<<"func1:\n"; func1(); cout<<"\nfunc2:\n"; func2(); return 0; }
0 0
- 南京爱立信笔试一题
- 爱立信 20130610 南京南大笔试
- 爱立信笔试
- 爱立信笔试
- 爱立信笔试
- 南京摩托罗拉笔试题
- 南京JingDong笔试题
- 一道爱立信改自腾讯笔试题
- Tencent2014实习笔试题 南京
- 爱立信笔试日记
- 爱立信笔试+面试
- 爱立信、EMC笔试面试
- 上海爱立信笔试题-分享(真的就一道题)
- 看博文《一道爱立信改自腾讯笔试题 》所想
- 百度2014校园招聘南京笔试题
- 2014小米研发笔试题(南京站)
- 趋势科技2015笔试题-南京
- 南京某it公司笔试题
- Oracle SQL语句优化【3】
- Number
- for循环
- Android NDK几点回调方式
- 数据库学习--mysql数据库sql优化原则
- 南京爱立信笔试一题
- 引擎设计: 三维引擎总体结构
- C语言为指针动态分配内存 内存泄露
- 黑马程序员之----------java IO流
- 点击不同按钮,弹出每个按钮的不同的内容:
- while、do-while循环 、switch 语句的语法
- DNS解析过程
- 代理
- X视窗系统和GTK