有如下程序: #inClude<iostream> using namespaCe std; Class Book{ publiC: Book(Char*t=””){strCpy(title,t);} private: Char titlel40]; }; Class Novel:publiC Book{ publiC: Novel(Char*t=””):Book(t){} Char*Category( )Const{return”文学”;} }; int main( ){ Book * pb; pb=n

题目

有如下程序: #inClude<iostream> using namespaCe std; Class Book{ publiC: Book(Char*t=””){strCpy(title,t);} private: Char titlel40]; }; Class Novel:publiC Book{ publiC: Novel(Char*t=””):Book(t){} Char*Category( )Const{return”文学”;} }; int main( ){ Book * pb; pb=new Novel( ); Cout<<pb→Category( ); delete pb; return 0; } 若程序运行时输出结果是“文学”,则横线处缺失的语句是( )。

A.Char*Category( );

B.Char*Category( )Const;

C.virtual Char*Category( )Const;

D.virtual Char*Category( )Const=0;


相似考题
参考答案和解析
正确答案:D
本题考查纯虚函数和抽象类,纯虚函数是在声明虚函数时被“初始化”为0的函数,包含纯虚函数的类为抽象类,抽象类足不能被实例化的,但是可以定义指向抽象类数据的指针变量,当派生类成为具体类后,就可以用这种指针指向派生类的对象,然后通过该指针调用虚函数,实现多态性的操作。所以本题答案为D。
更多“有如下程序: #inClude&lt;iostream&gt; using namespaCe std; Class Book{ publiC: Book(Char* ”相关问题
  • 第1题:

    请将下面的程序补充完整,使得程序输出“飘是张娜的书”。

    include

    using namespace std

    class Book{

    public:

    Book(char*str)|strcpy(title,str);

    ______void Printlnfo(){cout<<title<<endl;}

    protected:

    char title[50];

    };

    class MyBook:public Book{

    public:

    MyBook(char*s1,char*S2=“张娜”):

    ______strcpy(owner,s2);}

    virtual void PrintInfo(){cout<<title<<“是”<<owner<<“的书”<<endl;}

    private:

    charowner[10];

    };

    int main(){

    Book*ptr=new MyBook(“飘”);

    ptr->Printlnfo();

    return 0;

    }


    正确答案:virtual MyBook(char*s2)。
    virtual MyBook(char*s2)。

  • 第2题:

    以下选项中正确的语句组是______。

    A.chars[];s="BOOK!";

    B.char*s;s={"BOOK!"};

    C.chars[10];s="BOOK!";

    D.char*s;S="BOOK!";


    正确答案:D
    解析:选项A和选项C中,都是绐数组第—个元素赋初值,因为在C语言中,定义的数组名可以认为是—个存入地址值的指针变量名,其中的地址值是数组第—个元素的地址,即在默认情况下,程序使用数组名是指向该数组的首地址, —个地址只能存入一个数据,因此这两个选项是错误的;选项B和选项D都是用字符指针指向—个字符串,它只能指向—个字符变量或其他字符类型数据,不能同时指向多个字符数据,更不能把这些字符存放到变量中(指针变量只能存放地址),因此选项B是错误的,只有选项D是正确的。

  • 第3题:

    下列选项中正确的语句是( )。

    A.chars[];s="BOOK!";

    B.char*s;S={"BOOK!");

    C.chars[10];s="BOOK";

    D.char*S;s="BOOK!";


    正确答案:D
    D。【解析】在选项D中,字符指针s指向字符串常量BOOK!。故选项D正确。

  • 第4题:

    有如下程序:

    #include<iostream>

    using namespace std;

    class Book{

    public:

    Book(char*t=””){strcpy(title,t);}

    private:

    char title[40];

    };

    class Novel:public Book{

    public:

    Novel(char *t=””):Book(t){}

    char*Category()const{return”文学”;)

    };

    int main(){

    Book *pb;

    pb=new Novel();

    cout<<pb->Category();

    return 0;

    }

    若程序运行时输出结果是“文学”,则划线处缺失的语句是

    A.char*Category();

    B.char*Category()const;

    C.virtual char*Category()const;

    D.virtual char*Category()const=0;


    正确答案:D

  • 第5题:

    下列选项中正确的语句是( )。

    A.chars[];s="BOOK!";

    B.char*s;S={"BOOK!");

    C.chars[10];s="BOOK";

    D.char*S;s="BOOK!";


    正确答案:D
    D。【解析】在选项D中,字符指针s指向字符串常量BOOK!。故选项D正确。