0038关于父类与子类中的一道题(牛客)
来源:互联网 发布:舞台音乐控制软件 编辑:程序博客网 时间:2024/06/05 22:45
求输入:
class
A
{
public
:
void
foo()
{
printf(
"1"
);
}
virtual
void
fun()
{
printf(
"2"
);
}
};
class
B:
public
A
{
public
:
void
foo()
{
printf(
"3"
);
}
void
fun()
{
printf(
"4"
);
}
};
int
main(
void
)
{
A a;
B b;
A *p = &a;
p->foo();
p->fun();
p = &b;
p->foo();
p->fun();
A *ptr = (A *)&b;
ptr->foo():
ptr->fun();
return
0
;
}
答案:B
1,首先声明为A类型的指针指向实际类型为A的对象,调用的肯定是A的方法,输出1 2,
2,然后声明为A类型的指针指向实际类型为B的对象,则非虚函数调用A的方法,输出1,虚函数调用实际类型B的方法,输出4
3,声明类型为A的指针指向实际类型为B的对象,进行一个强制类型转换,其实这种父类指针指向子类会自动进行类型转换,所以是否强制类型转换都不影响结构,原理同上一步,结果输出1 4
所以最终输出为121414
1,首先声明为A类型的指针指向实际类型为A的对象,调用的肯定是A的方法,输出1 2,
2,然后声明为A类型的指针指向实际类型为B的对象,则非虚函数调用A的方法,输出1,虚函数调用实际类型B的方法,输出4
3,声明类型为A的指针指向实际类型为B的对象,进行一个强制类型转换,其实这种父类指针指向子类会自动进行类型转换,所以是否强制类型转换都不影响结构,原理同上一步,结果输出1 4
所以最终输出为121414
0 0
- 0038关于父类与子类中的一道题(牛客)
- C#中的父类与子类
- 关于子类和父类中的this的用法
- 第5章-子类与继承-子类与父类在同一包中的继承性
- 子类与父类,
- 父类与子类
- 父类与子类
- 关于父类与子类的构造函数调用顺序
- 父类与子类中的重名问题(shadow)
- 关于继承(子类对象与父类对象【相互转换】的过程)
- C#父类与子类(多态性)
- 关于c++指向子类的基类指针,与指向子类的子类指针
- 关于Scala子类继承父类属性的问题释疑---子类构造器参数不要与父类属性同名
- 继承 父类与子类
- 父类与子类2
- 5.1 子类与父类
- 一道子类继承题,求指点
- 《2016展讯校招java软开最后一道题》考点:父类子类static{}块、{}块、构造函数的调用顺序
- SSH框架整合
- linux窗口管理器学习
- 设计模式----适配器模式
- swift 属性的几个写法
- TableView 小技巧 (一)
- 0038关于父类与子类中的一道题(牛客)
- JAVA递归全排列
- 在腾讯云上部署tomcat+java+mysql项目
- java发邮件工具类
- 禅与摩托车维修艺术,又名万里任禅游
- sprintf(cmd_buff,"%s_bak.exe",pExeName);ShellExecuteA(NULL,"open",cmd_buff,argvs,
- leetcode——75——Sort Colors
- Android实现电子邮箱客户端
- C语言编辑器获取数组中元素个数