如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。
A.10,20
B.30,40
C.20,30
D.50,50
A.10,20
B.30,40
C.20,30
D.50,50
A.10,20
B.30,40
C.20,30
D.50,50
#include
using namespace std;
class Base{
public:
Void print(){cout$amp;class Derived: public Base{
public
void print(){cout$amp;int main()
{
Derived*pd=new Dreived);
Base*pb=pd;
pb->print();
pd->print();
delete pd;
return 0;
}
A、f+g+
B、f0+g+
C、f+g0+
D、f0+g0+
A.f+g+
B.f0+g+
C.f+g0+
D.f0+g0+
分析下面的程序,正确的输出结果是( )。 #include <iostream> #include <string.h> using namespace std; class base { public: virtual char *fun(void)const=0; }; char *base::fun(void)const { return "base"; } class derived1:virtual public base { public: char *fun(void)const { return "derived1"; } }; class derived2:virtual public base { public: char *fun(void)const { return "derived2"; } }; class subderived:public derived1,public derived2 { public: char *fun(void)const { char *pch; pch=new char[strlen(derived1::fun()) + strlen(derived2::fun()) + 1]; strcpy(pch, derived1::fun()); strcat(pch, derived2::fun()); return pch; } }; void main(void) { base *pb; pb=new derived1; cout< <pb-> fun()< <endl; pb="new" derived2;> fun()< <endl; pb="new" subderived;> fun()< <endl; system("pause");> A、base base base
B、derived1 derived2 derived1derived2
C、derived1 derived1 derived1derived2
D、derived2 derived2 derived1derived2
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!