有如下类定义: 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次
第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();
}
第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次
第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次
第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