itgle.com

有如下程序:includeusing namespace std;class TestClass{private;char c;public;Tes有如下程序: #include<iostream> using namespace std; class TestClass { private; char c; public; TestClass (char n):c(n){} ~TestClass () { cout<<c; } }; class TestClass1:public TestClass {

题目
有如下程序:includeusing namespace std;class TestClass{private;char c;public;Tes

有如下程序: #include<iostream> using namespace std; class TestClass { private; char c; public; TestClass (char n):c(n){} ~TestClass () { cout<<c; } }; class TestClass1:public TestClass { Private: char c; public: TestClass1(char n):TestClass (n+1),c(n){} ~TestClass1() { cout<<c; } }; int main() { TestClass1 obj('x'); return 0; } 执行上面的程序输出( )。

A.xy

B.yx

C.x

D.y


相似考题
更多“有如下程序:#include<iostream>using namespace std;class TestClass{private;char c;public;Tes ”相关问题
  • 第1题:

    有以下程序include include using namespace std;class base{private:char

    有以下程序 #include <iostream> #include <string> using namespace std; class base { private: char baseName[10]; public: base () { strcpy(baseName,"Base"); } virtual char *myName() { return baseName; } char *className() { return baseName; } }; class Derived : public base { private: char derivedName[10]; public: Derived() { strcpy(derivedName,"Derived"); } char *myName() { return derivedName; } char *className() { return derivedName; } }; void showPtr(base &p) { cout<<p.myName () <<" "<<p.className (); } int main () { base bb; Derived dd; showPtr(dd); return 0; } 运行后的输出结果为

    A.Derived Base

    B.Base Base

    C.Derived Derived

    D.Base Derived


    正确答案:A
    解析:本题考核虚函数的应用。类Derived是从基类Base公有派生而来的。因此,Derived是基类Base的子类型。main()函数中定义了一个基类对象bb和一个派生类对象dd。从程序,中可看出派生类Derived的对象dd交给了处理基类Base的对象的函数showPtr进行处理。由于在基类中函数myName被定义成虚函数。所以在函数 showPtr中调用的myName函数为派生类的成员函数 myName,从而输出Derived。然后输出className,即基类名称Base。

  • 第2题:

    有下列程序:includeusing namespace std;c1ass TestClass{private;char c;public:Tes

    有下列程序: #include<iostream> using namespace std; c1ass TestClass { private; char c; public: TestClass(char n):c(n){} ~TeStClass() { cout<<c } }; class TestClass1:public TestClass {

    A.xy

    B.yx

    C.x

    D.y


    正确答案:A
    解析: 题目中程序TestClass为基类,TestClass1为派生类。在主函数中定义TestClass1对象obj('x'),“TestClass1(char n):TestClass(n+1),c(n){}”,所以先输出x,然后调用基类构造函数,′x′+=′y′,所以输出y,即答案为xy。

  • 第3题:

    有下列程序:includeusing namespace std;class TestClass{private:int x,y;public:Te

    有下列程序: #include<iostream> using namespace std; class TestClass { private: int x,y; public: TestClass (int i,int j) { x=i; y=j; } void print() { cout<<"printl"<<endl; } vo

    A.print1

    B.print2

    C.pfint1 print2

    D.程序编译时出错


    正确答案:B
    解析: 由主函数main入手,定义TestClass型的常对象a,然后调用对象a中的成员函数print()。因为在C++中,如果一个对象被声明为常对象,则不能调用该对象中的非const型的成员函数。所以,这里调用的是对象中的const型成员函数“void print ()const”,输出为print2。

  • 第4题:

    有以下程序include include using namespace std;class base {private:char

    有以下程序 #include <iostream> #include <string> using namespace std; class base { private: char baseName[10]; public: base() { strcpy(baseName,"Base"); } virtual char *myName() { return baseName; } char *className() { Return baseName; } }; class Derived: public base { private: char derivedName[10]; public: Derived() { strcpy(derivedName,"Derived" ); } char *myName() { return derivedName; } char *className() { return derivedName; } }; void showPtr(base &p) { cout<<p.myName()<<" "<<p.className(); } int main() { base bb; Derived dd; showPtr(dd); return 0; } 运行后的输出结果为

    A.Derived Base

    B.Base Base

    C.Derived Derived

    D.Base Derived


    正确答案:A
    解析:本题考核虚函数的应用。类Derived是从基类Base公有派生而来的。因此,Derived是基类Base的子类型。main()函数中定义了一个基类对象比和一个派生类对象dd。从程序中可看出派生类Derived的对象dd交给了处理基类Base的对象的函数showPtr进行处理。由于在基类中函数myName被定义成虚函数。所以在函数showPtr中调用的myName函数为派生类的成员函数myName,从而输出Derived。然后输出className,即基类名称Base。

  • 第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。