继承虚函数&数组名做参数
来源:互联网 发布:淘宝优惠券怎么做兼职 编辑:程序博客网 时间:2024/05/17 22:22
#include<iostream>using namespace std;class Base{public: virtual int foo(int x) { return x * 10; } int foo(char x[14]) { return sizeof(x) + 10; }};class Derived: public Base{ int foo(int x) { return x * 20; } virtual int foo(char x[10]) { return sizeof(x) + 20; }} ;int main(){ Derived stDerived; Base *pstBase = &stDerived; char x[10]; printf("%d\n", pstBase->foo(100) + pstBase->foo(x)); return 0;}
在32位环境下,以上程序的输出结果是?正确答案: C
A.2000
B.2004
C.2014
D.2024
答案解析:
注:数组名做参数时会退化为指针
pstBase是一个指向基类Base的指针,指针里存的是Base的子类Derived对象stdDerived的地址,pstBase->foo(100)是通过虚函数机制调用Derived的int foo (int x)函数,所以返回的值为2000,;而pstBase->foo(x)调用的是Base类里的int foo(char x[14])函数,返回值为14。因此最后的结果为2014,其中在int foo(char x[14])这个函数中,sizeof(x)计算的是指向x[14]这个数组的常量指针x,大小为4字节(在32位系统中)。
0 0
- 继承虚函数&数组名做参数
- 数组名做函数参数
- 数组名做函数参数
- 用数组名做函数参数
- 用数组名做函数参数
- 用数组名做函数参数(转)
- 函数名做函数参数
- 函数名做函数参数
- 函数名做函数参数
- C语言之数组专题:数组指针、指针数组、数组做函数参数退化、数组名、数组类型
- C语言之数组专题:数组指针、指针数组、数组做函数参数退化、数组名、数组类型
- C++的基础知识(十一)--数组做函数参数、数组名a与&a区别、数组名a的"数据类型"
- 【c基础】c语言 变量 数组元素 数组名做函数参数传递
- 二维数组名做参数传递问题
- 二维数组名做参数传递问题
- 二维数组名做参数传递问题
- 数组名做函数参数,将a[10]中元素反序
- 二维数组做函数参数
- UITextField的总结
- MATLAB矩阵及其运算
- Linux常用命令大全
- centos 安装jdk
- 隐藏ion-nav-back-button的文字
- 继承虚函数&数组名做参数
- 线性布局案例(2)
- NDK开发之c++调用java
- 强化学习向光连接资料
- 【Spring】spring-mvc hibernate druid jdbc等数据源事务配置详解(解决注解事务不生效问题)
- 解除ABAP程序编辑锁的方法
- 第七周实践项目1-成员函数、友元函数和一般函数有区别
- 回顾新工作一个月
- 20160412模拟