题目内容

有如下程序#includeusing namespace std;class A{public: virtual void func1(){cout<<"Al";} void func2(){cout<<"A2";}};class B:public A{public: void func1(){cout<<"B1";} void func2(){cout<<"B2";}};int main(){ A*p=new B; p->func1(); p->func2(); return 0;}运行此程序,屏幕上将显示输出( )。

A. B1B2
B1A2
C. A1A2
D. A1B2

查看答案
更多问题

于运算符重载,下列表述中正确的是( )

A. 在类型转换符函数的定义中不需要声明返回类型
B. C++已有的任何运算符都可以重载
C. 运算符函数的返回类型不能声明为基本数据类型
D. 可以通过运算符重载来创建C++中原来没有的运算符

下列有关继承和派生的叙述中,正确的是( )。

A. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
B. 如果一个派生类私有继承其基类,则该派生类中的成员不能访问基类的保护成员
C. 派生类的成员函数可以访问基类的所有成员
D. 基类对象可以赋值给派生类对象

有如下程序:#include using namespace std;class Complex{ double re,im; public: Complex (double r,double i):re(r),im(i) { } double real() const {return re;} double image() const { return im;} Complex& operator+=(Complex a) { re+=a.re ; im+=a.im ; return *this ; }};ostream& operator<<(ostream& s,const Complex& z){ return s<<'('<

A. (2,3)
B. (1,-2)
C. (3,1)
D. (3,5)

运算符重载是对已有的运算符赋予多重含义,因此( )。

A. 只能重载C++中己经有的运算符,不能定义新运算符
B. 可以对基本类型(如int类型)的数据,重新定义"+"运算符的含义
C. 可以改变一个已有运算符的优先级和操作数个数
D. C++中已经有的所有运算符都可以重载

答案查题题库