niusouti.com

( 32 )有如下程序#include<iostream>using namespace std;class Publication{ // 出版物类char name[30];public:Publication(char *name=" 未知名称 "){strcpy(this->name,name);}const char * getName()const{ return name; }virtual const char * getType()const{ return " 未知类型 ";}};cl

题目

( 32 )有如下程序

#include<iostream>

using namespace std;

class Publication{ // 出版物类

char name[30];

public:

Publication(char *name=" 未知名称 "){

strcpy(this->name,name);

}

const char * getName()const{ return name; }

virtual const char * getType()const{ return " 未知类型 ";}

};

class Book: public Publication{ // 书类

public:

Book(char *name): Publication(name){}

virtual const char * getType()const{ return " 书 " ; }

};

void showPublication( Publication &p){

cout<<p.getType()<<":"<<p.getName()<<endl;

}

int main(){

Book book(" 精彩人生 ");

showPublication(book);

return 0;

}

运行时的输出结果是

A )未知类型:未知名称

B )未知类型:精彩人生

C )书:未知名称

D )书:精彩人生


相似考题
更多“( 32 )有如下程序#include&lt;iostream&gt;using namespace std;class Publication{ // 出版物类 ”相关问题
  • 第1题:

    有如下程序:includeusing namespace std;class Publication{//出版物类char name[30]

    有如下程序: #include<iostream> using namespace std; class Publication{//出版物类 char name[30]; public: Publication(char*name="未知名称"){strcpy(this->name,name);} const char*getName( )const{return name;} //常数据成员 virtual const char*getType( )const{return"未知类型";}//虚常数据成员 }; class Book:public Publication{ //书类 public: Book(char*name):Publication(name){ } virtual const char*getType( )const{return"书";} //虚常数据成员 }; void showPublication(Publication &p){cout<<p.getType( )<<":"<<P.getName( )<<endl;} int main( ){ Book book("精彩人生"); showPublication(book); return 0; } 程序的输出结果是

    A.未知类型:未知名称

    B.未知类型:精彩人生

    C.书:未知名称

    D.书:精彩人生


    正确答案:D
    解析:在函数形参是基类对象,可以在函数调用时用派生类对象作为实参。此时基类对象只能调用自己的数据成员,但是virtual函数除外,该成员在派生类中被改写,在基类中仍然适用,故答案为D。

  • 第2题:

    阅读下列说明和C++代码,填写程序中的空(1)~(6),将解答写入答题纸的对应栏内。
    【说明】
    以下C++代码实现一个简单绘图工具,绘制不同形状以及不同颜色的图形。部分类及其关系如图6-1所示。



    【C++代码】
    #include?#include?using?namespace?std;class?DrawCircle?{??????//绘制圆形,抽象类? ? ? public: (1);//定义参数为?int?radius,?int?x,?inty? ?virtual~DrawCircle()?{?}};class?RedCircle:public?DrawCircle?{????//绘制红色圆形? ? ? ? public: void?drawCircle(intradius,?int?x,?int?y)?{cout?<?drawCircle?=?drawCircle;? }? ?virtual~shape()?{?}? public:? ?virtual?void?draw()?=?0;};class?Circle:public?Shape?{????//圆形? ? private:? ? ?int?x,y,radius;? ? public:? Circle(int?x,inty,int?radius,DrawCircle?*drawCircle)? (3)? {? this->x?=?x;? ?this->y?=?y;? ? this->radius?=?radius; }? ? ? public:? void?draw(){? drawCircle?-> (4); }};int?main(){Shape?*redCirclenew?Circle(100,100,10,????(5)????);//绘制红色圆形? Shape?*greenCircle=new?Circle(100,100,10, (6)??);//绘制绿色圆形redCircle >draw();? ?greenCircle?->draw();? ?return?0;}


    答案:
    解析:
    (6)(1)void drawCircle (int radius,int x,int y)
    (2)DrawCircle*drawCircle
    (3)drawcircle
    (4)drawCircle(radius,x,y)
    (5)new RedCircle()
    (6)new GreenCircle()【解析】
    第一空是填接口里面的方法,在接口的实现里面找,可以发现应该填void drawCircle (int radius,int x,int y)。
    第二空可以根据后面this drawCircle=drawCircle判断,这里应该有一个drawCircle属性,因此应该填)DrawCircle drawCircle。
    第三空这里填drawcircle,用-> drawcircle来引用父类的成员。
    第四空调用drawCircle(radius,x,y)方法。
    第五、六空分别创建一个红色圆形对象和一个绿色圆形对象作为Circle里面的实参。

  • 第3题:

    请练习rosmsg命令,下列哪个不是std_msgs下的消息?

    A.std_msgs/Header

    B.std_msgs/Time

    C.std_msgs/Float32

    D.std_msgs/LaserScan


    std_msgs/LaserScan

  • 第4题:

    有如下程序: #include<iostream> usingnamespacestd; classPublication{//出版物类 charname[30]; public: Publication(char*name=”未知名称”){ ~strcpy(this一>name,name); } constchar*getName( )const{returnname;} virtualconstchar*getType( )const{return”未知类型”;} }; classBook:publicPublication{//书类

    public: Book(char*name):Publication(name){} virtualconstchar*getType( )const{return"书";} }; voidshowPublication(Publication&p){ cout<<p.getType( )<<":"<<p.getName( )<< endl; } intmain( ){ Bookbook(”精彩人生”); showPublication(book); return0; } 运行时的输出结果是( )。

    A.未知类型:未知名称

    B.未知类型:精彩人生

    C.书:未知名称

    D.书:精彩人生


    正确答案:D
    D。【解析】因为getType是虚函数,所以P.getType执行继承类的getType函数,输出“书”;P.getName执行基类的getName函数,输出“精彩人生”。总共输出“书:精彩人生”,故选D。

  • 第5题:

    按机要刊物类资费交寄机要内参需要具备如下条件()

    A印有准印证号或统一刊号(CN)

    B发行范围符合机要件寄递范围

    C有固定的出版时间并连续出版

    D经省机要通信部门批准


    A,B,C