首页 > 试题广场 >

下列代码执行后,语句1,2,3输出结果分别为()

[单选题]
下列代码执行后,语句1,2,3输出结果分别为()


  • 运行时错误hello hello
  • hello hello hello
  • hello 运行时错误hello
  • hello hello 运行时错误
推荐
选择D
pa1是父类指针指向子类对象,所以执行运行时绑定(多态),但派生类CDerive中没有实现父类中虚函数printInfo的函数,所以运行时会调用父类的printInfo();第一句话输出“hello”
pb是指向的子类对象,运行时会执行从父类继承来的printInfo()函数,第二句话输出“hello”
pa0指向的是父类对象,要注意父类对象oa创建时,执行构造函数,构造函数中要执行setZero,其中memset的作用是对内存做初始化工作,也就是对oa对象的内存做了“清零”操作。所以第三句话访问printInfo()函数会出错,导致运行时错误。
编辑于 2017-05-23 13:29:38 回复(0)