类和对象

第81题

下列关于虚函数的描述中,正确的是()。

第82题

在下列横线处应添加的语句是()。

class Base{public: void fun(){cout<<"Base::fun"<<endl;}};
class Derived:public Base
{
public:
    void fun()
    {
        //显示调用基类的fun函数
        cout<<"Derived::fun"<<endl;
    }
};
第83题

若类A和类B的定义如下,则上述定义中非法的表达式是()。

#include<malloc.h>
class A
{
    int i,j;
public:
    int geti()
    {
        return i;
    }
};
class B:public A
{
    int k;
public:
    void make()
    {
        k=i*j;
    }
};
第84题

派生类的构造函数的成员初始化列中,不能包含()。

第85题

派生类的对象对它的基类成员中()是可以访问的。

第86题

 C++类体系中,不能被派生类继承的有()。

第87题

有如下程序,执行上面的程序将输出()。

#include<iostream>
using namespace std;
class TestClass
{
public:
    TestClass(){cout<<"BB";fun();}
    void fun(){cout<<"Bf";}
};
class TestClass1:public TestClass
{
public:
    TestClass1(){cout<<"DD";}
    void fun(){cout<<"Df";}
};
int main(){TestClass1 d;return 0;}
第88题

下列程序中横线处正确的语句是()。

#include<iostream>
using namespace std;
class TestClass
{
public:
    void fun(){cout<<" TestClass::fun"<<endl;}
};
class TestClass1:public TestClass
{
    void fun()
    {
        //显示调用基类的函数fun()
        cout<<" TestClass1::fun"<<endl;
    }
};
第89题

下面关于虚函数的描述中正确的是()。

第90题

有如下程序,执行上面程序的输出是()。

#include<iostream>
using namespace std;
class TestClass1
{
public:
    virtual void fun() {cout<<"1";}
};
class TestClass2:public TestClass1
{
public:
    TestClass2(){cout<<"2";}
};
class TestClass3:public TestClass2
{
public:
    virtual void fun(){TestClass2::fun();cout<<"3";}
};
int main()
{
    TestClass1 aa,*p;
    TestClass2 bb;
    TestClass3 cc;
    p=&cc;
    p->fun();
    return 0;
}
第91题

有如下类声明,在构造函数XB的下列定义中,正确的是()。

class XA{

    int x;

public:

    XA(int n){x=n;}

};

class XB:public XA{

    int y;

public:

    XB(int a,int b);

};


第92题

有如下程序,执行后的输出结果是()。

#include<iostream>
using namespace std;
class BASE{
public:
    ~BASE(){cout<<"BASE";}
};
class DERIVED:public BASE{
public:
    ~DERIVED(){cout<<"DERIVED";}
};
int main(){DERIVED d;return 0;}
第93题

下列有关类继承的叙述中,错误的是()。

第94题

 在下列关键字中,不能用来表示继承方式的是()。

第95题

在类声明中,紧跟在“public:”后声明的成员的访问权限是()。

第96题

定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为()。

第97题

 有如下定义,下列选项中,输出结果为A0的语句是()。

class XX
{
    int xx;
public:
    XX(): xx(0) {cout<<'A';}
    XX(int n): xx(n) {cout<<'B';}
};
class YY: public XX
{
    int yy;
public:
    YY(): yy(0) {cout<<yy;}
    YY(int n): XX(n+1), yy(n) {cout<<yy;}
    YY(int m, int n): XX(m), yy(n) {cout<<yy;}
};
第98题

有如下类定义,YY类的对象包含的数据成员的个数是()。

class XX{
    int xdata;
public:
    XX(int n=0):xdata(n){}
};
class YY: public XX{
    int ydata;
public:
    YY(int m=0,int n=0):XX(m),ydata(n){}
};
第99题

下列关于继承方式的描述中,错误的是()。

第100题

下列代码段声明了3个类,下列关于这些类之间关系的描述中,错误的是()。

class Person{};
class Student:public Person{};
class Undergraduate:Student{};