下面关于虚函数的描述中正确的是()。A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函
下面关于虚函数的描述中正确的是()。
A.虚函数是一个静态成员函数
B.虚函数是一个非成员函数
C.虚函数既可以在函数说明时定义,也可以在函数实现时定义
D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
下面关于虚函数的描述中正确的是()。
A.虚函数是一个静态成员函数
B.虚函数是一个非成员函数
C.虚函数既可以在函数说明时定义,也可以在函数实现时定义
D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型
A.设置虚基类的目的是为了消除二义性
B.虚基类的构造函数在非虚基类之后调用
C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用
D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数
A.使用虚基类可以消除由多继承产生的二义性
B.构造派生类对象时,虚基类的构造函数只被调用一次
C.声明“classB:virtualpublicA”说明类B为虚基类
D.建立派生类对象时,首先调用虚基类的构造函数
A、关键字virtual只能用来声明虚函数
B、声明虚函数时,才使用关键字virtual
C、关键字virtual不能用来声明虚基类
D、关键字virtual能用来声明虚基类
有如下程序: #include <iostream> using namespace std; class TestClass { public: virtual void fun1( ) { cout<<"fun1testclass"< } virtual void fun2( ) { }; testclass1:public testclass fun1( fun2(int x) int main( obj1,*p; testclass1 obj2; p="&obj2;" p-> fun1(); p->fun2(); return 0; } 该程序执行后的输出结果是( )。
A、fun1TestClass1 fun2TestClass
B、fun1TestClass1 fun2TestClass1
C、fun1TestClass fun2TestClass
D、fun1TestClass fun2TestClass1
A、所有的运算符都可以重载。
B、基类类型的指针可以指向子类,子类类型的指针也可以指向基类。
C、可以在类的构造函数中对静态数据成员进行初始化。
D、动态联编要满足两个条件:被调用的成员函数是虚函数;用基类指针或引用调用虚函数。
有如下程序: #include <string.h> #include <iostream> using namespace std; class Publication{ //出版物类 char name[30]; public: Publication(char *name="未知名称") { strcpy(this->name,name); } const char * getName()const{ return name; } virtual const char * getType()const{ return "未知类型";} }; class Book: public Publication{ //书类 public: Book(char *name): Publication(name){} virtual const char * getType()const{ return "书";} }; void showPublication( Publication &p){ cout< <p.gettype()> <<":> < <endl; } int main(){ book book("精彩人生"); showpublication(book); return 0; 运行时的输出结果是(> A、未知类型:未知名称
B、未知类型:精彩人生
C、书:未知名称
D、书:精彩人生
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!