niusouti.com

有如下类定义: class Point { int x_,y_; public: Point():x_(0),y_(0){} Point(int x,int y=0):x_(x),y_(y){} }; 若执行语句 Point a(2),b[3],*c[4]; 则Point类的构造函数被调用的次数是A.2次B.3次C.4次D.5次

题目

有如下类定义: class Point { int x_,y_; public: Point():x_(0),y_(0){} Point(int x,int y=0):x_(x),y_(y){} }; 若执行语句 Point a(2),b[3],*c[4]; 则Point类的构造函数被调用的次数是

A.2次

B.3次

C.4次

D.5次


相似考题
更多“有如下类定义: class Point { int x_,y_; public: Point():x_(0),y ”相关问题
  • 第1题:

    使用VC6打开考生文件夹下的工程test24_3,此工程包含一个源程序文件test24_3.cpp,其中定义了抽象类point和它的派生类line,但它们的定义并不完整。请按要求完成下列操作,将程序补充完整。

    (1)定义类point的构造函数,函数含参数i和j它们都是int型数据,默认值都是0,用i和j分别将point的数据成员x0和y0初始化。请在注释“//**1**”之后添加适当的语句。

    (2)完成类point的成员函数纯虚函数void set()和void draw()的定义,请在注释“//**2**”之后添加适当的语句。

    (3)添加类line的构造函数,函数含参数i,j,m和n,它们都是int型数据,默认值都是0,用i和j分别将point的数据成员x0和y0初始化。请在注释“//**3**”之后添加适当的语句。输出结果如下:

    line::set()called.

    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

    源程序文件test24_3.cpp清单如下:

    include<iostream.h>

    class point

    {

    public:

    //**1**

    //**2**

    protected:

    int xO,yO;

    }

    class line: public point

    {

    public:

    //**3**

    {

    x1=m;

    y1=n;

    }

    void set(){ cout<<"line::set() called.\n"; }

    void draw(){ cout<<"line::draw() called.\n"; }

    protected:

    int x1,y1;

    };

    void main()

    {

    line *lineobj = new line;

    1ineobj->set();

    }


    正确答案:(1) point(int i=Oint j=0){x0=i;y0=j;} (2) virtual void set()=0; virtual void draw()=0; (3) line(int i=Oint j=0int m=0int n=0):point(ij)
    (1) point(int i=O,int j=0){x0=i;y0=j;} (2) virtual void set()=0; virtual void draw()=0; (3) line(int i=O,int j=0,int m=0,int n=0):point(i,j) 解析:本题主要考查考生对于纯虚函数和抽象类以及派生类构造函数的使用,注意(2)中纯虚函数的定义格式。纯虚函数是一种特殊的函数,不是在基类中实现,而是在派牛类中实现,说明格式是在函数声明中加入关键字“virtual”和“=0”。
    如:virtual void set()=0;。而带有纯虚函数的类就是抽象类,它是不能定义对象的,只是一个公共的类。

  • 第2题:

    有如下类定义: class Point { int xx.yy; public: Point:xx(0),yy(0){} Point(int x,int Y=0):xx(X),YY(Y){} }; 若执行语句 Point a(2),b[3],幸c[4]; 则Point类的构造函数被调用的次数是( )。

    A.2次

    B.3次

    C.4次

    D.5次


    正确答案:C
    本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b[3],共执行4次构造函数,对象指针不调用构造函数。所以本题答案为c。

  • 第3题:

    有如下类定义:class Point{int x__, y__;public:Point(): x_(0), y_(0) {}Point(int x, int y =0): x_(x), y_(y) {}若执行语句Point a(2),b[3], *c[4];则Point 类的构造函数被调用的次数是( )。

    A.2次

    B.3次

    C.4次

    D.5次


    正确答案:C

  • 第4题:

    有如下类定义:

    class Point{

    public:

    Point(int xx=0,int yy=0):x(xx),y(yy) { }

    private:

    int x,y;

    };

    class Circle:public Point{

    public:

    Circle(int r):radius(r) { }

    private:

    int radius;

    };

    派生类Circle中数据成员的个数是( )。

    A、3

    B、1

    C、5

    D、2


    答案:A
    解析:本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a(2)以及对象数组b[3],共执行3次构造函数,对象指针不调用构造函数。


  • 第5题:

    有如下程序: #inClude<iostream> using namespaCe std; Class Point{ publiC: statiC int number; publiC: Point( )t.number++;} ~Point( ){number--;} }; , int P0int::number=0; int main( ){ Point *ptr: Point A,B; Point*ptr_point=new Point[3]; ptr=ptr_point;’ } Point C; Cout<<Point:::number<<endl; delete[]ptr; return 0; } 执行这个程序的输出结果是( )。

    A.3

    B.4

    C.6

    D.7


    正确答案:C
    本题考查默认构造函数.题目中定义.个对象A、B以及对象数组Point[3],又定义了对象C,共执行6次构造函数,number变为了6,所以本题答案为C。