niusouti.com

有下列程序:include using namespace std; class TestClass1 { public: TestClass1(){有下列程序:include<iostream>using namespace std;class TestClass1{public:TestClass1(){cout<<"A";}};class TestClass2<public:TestClass2(){cout<<"B";}};class TestClass3:public TestClass1{Te

题目
有下列程序:include using namespace std; class TestClass1 { public: TestClass1(){

有下列程序:

include<iostream>

using namespace std;

class TestClass1

{

public:

TestClass1(){cout<<"A";}

};

class TestClass2<public:TestClass2(){cout<<"B";}

};

class TestClass3:public TestClass1{

TestClass2 b;


相似考题
更多“有下列程序:include<iostream> using namespace std; class TestClass1 { public: TestClass1(){ ”相关问题
  • 第1题:

    有如下类说明: class TestClass{ int x; public: TestClass(int n){x=n;} }; class TestClass1:public TestClass{ int y; public: TestClass1(int a,int b); }; 在构造函数TestClass1的下列定义中,正确的是( )。

    A.TestClass1::TestClass1 (int a,int b):x(a),y(b){}

    B.TestClass1::TestClass1 (int a,int b):TestClass(a),y(b){}

    C.TestClass1::TestClass1 (int a,int b):x(a),TestClass1(b){}

    D.TestClass1::TestClass1 (int a,int b):TestClass(a),TestClass1(b){}


    正确答案:B
    解析:题目中程序TestClass为基类,TestClass1为派生类,派生类构造函数的一般形式为:派生类构造函数名(总参数类表):基类构造函数名(参数列表){派生类中新增数据成员初始化语句}。派生类TestClass1的基类函数名为TestClass,总参数为int a,int b,所以选择B)。

  • 第2题:

    下列程序输出结果为: include using namespace std; class TestClass1 { public: Test

    下列程序输出结果为:

    include<iostream>

    using namespace std;

    class TestClass1

    {

    public:

    TestClass1(){}

    TestClass1(int i)

    {

    x1=i;

    }

    void dispa()

    {

    cout<<"x1="<<x1<<",";

    }

    private:

    int x1;

    };

    class TestClass2:public TestClass1

    {

    public:

    TestClass2(){}

    TestClass2(int i):TestClass1(i+10)

    {

    x2=i;

    }

    void dispb()

    {

    dispa();

    cout<<"x2="<<x2<<endl;

    }

    private:

    int x2;

    };

    int main()

    {

    TestClass2 b(2);

    b.dispb();

    return 0;

    }


    正确答案:x1=12x2=2
    x1=12,x2=2 解析:由主函数main入手,首先定义类TestClass2的对象b,成员数据为2。然后调用dispb函数。在dispb中首先执行dispa函数,TestClass2为TestClass1的派生类,“TestClass2(int i):TestClass1(i+10)”所以TestClass1中的x1=12,dispa输出的结果为x1=12。在TestClass1中x2=2,所以dispb中的输出语句“cout”x2=”x2endl;”,输出x2=2。即答案为“x1=12,x2=2”。

  • 第3题:

    下列程序的输出结果为2,横线处应添加语句()。includeusing namespace std;{public:___

    下列程序的输出结果为2,横线处应添加语句( )。 #include<iostream> using namespace std; { public: ______void fun(){cout<<1;} }; class TestClass2:public TestClass1 { public:void fun(){cout<<2;) }; int main() { TestClass1 *p=new TestClass2; p->fun(); delete p; Teturn 0; }

    A.public

    B.private

    C.virtual

    D.protected


    正确答案:C
    解析:由主函数main入手,定义TestClass1类的指针对象p指向派生类Testclass2。因为基类和派生类中都有fun函数,题目要求输出为2,就是基类对象访问派生类中fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。

  • 第4题:

    执行下列程序的输出结果是______: include using namespace std; class TestClass1 {

    执行下列程序的输出结果是______:

    include<iostream>

    using namespace std;

    class TestClass1

    {

    public:

    void fun1(){cout<<"TestClass1\n";}

    virtual void fun2(){cout<<"TestClass1\n";}

    };

    class TestClass2:public TestClass1

    {

    public:

    void fun1(){cout<<"TestClass2\n";}

    void fun2(){cout<<"TestClass2\n";}

    };

    void f(TestClass1&b)<b.fun1();b.fun2();}

    int main()

    {

    TestClass2 obj;

    f(obj);

    return 0;

    }


    正确答案:TestClass1 TestClass2
    TestClass1 TestClass2 解析:主函数中首先定义TestClass2对象obj,然后执行“f(obj);”。“void f(TestClass1& b)(b.fun1);b.fun2();}”语句中fun中参数为TestClass1类型的对象b,其中调用fun1()和fun2()。基类 TestClass1中的fun2()为虚函数,所以派生类中的fun2也是虚函数,所以输出为调用TestClass1中的fun1,TestClass2中的fun2。即结果为TestClass1和TestClass2。

  • 第5题:

    有如下程序:includeusing namespace std;Class TestClass{int a;public:TestClass(in

    有如下程序: #include<iostream> using namespace std; Class TestClass {int a; public: TestClass(int x){a=x;} void show(){cout<<a;}}; class TestClass1:public TestClass {int b; public: TestClass1(int i):TestClass(i+1),b(i){} voi

    A.5

    B.1

    C.0

    D.2


    正确答案:D
    解析: TestClass为TestClass1的基类,在主函数main中定义TestClass对象b,*p。TestClassl对象d,p指向d,调用其show函数。“TestClass(int i):TestClass(i+1),b(i){}”语句中的TestClass基类参数为2,所以show输出2。