A.super()
B.base()
C.move()
D.flush()
A.一个类可以定义多个拷贝构造函数
B. 若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数
C. 当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝
D. 拷贝构造函数中的参数按引用方式传递
A.如果基类分别定义不带参数和带参数的构造函数,则派生类可以定义不带参数的构造函数
B.多重继承时先调用基类的构造函数,再调用派生类新增子对象的构造函数,执行派生类初始化列表,再执行派生类初始化函数体
C.有多个非虚基类时,按照派生类定义时的继承顺序分别按序依次调用基类的构造函数
D.当基类只定义带参数的构造函数时,派生类不需要定义构造函数
①构造函数重载;②成员函数设置缺省参数;③定义一个友元函数来打印日期(3分);④可使用不同的构造函数来创建不同的对象。
A.继承构造函数,使得派生类中可以直接使用基类的构造函数
B.若某个继承构造函数不被使用,编译器不会为其产生真正的函数代码
C.继承构造函数既能初始化基类中的数据成员,又能初始化派生类中的数据成员
D.若派生类继承自多个基类,可能导致派生类中的继承构造函数的函数名、参数相同而产生冲突
(1)定义类Coordinate的保护数据成员x和y,它们都是int型的数据,代表二维坐标的横纵坐标值。请在注释“//**1 **”之后添加适当的语句。
(2)根据类Coordinate定义后的成员函数Display的实现,补充该函数在类Coordinate定义体内的声明,Display为二维坐标类的虚函数。请在注释“//**2**。”之后添加适当的语句。
(3)完成二维坐标类Coordinate的构造函数,将参数a和b分别赋值给数据成员x和y。请在注释“//**3**”之后添加适当的语句。
(4)根据ThreeDCoord类构造函数的声明,补充ThreeDCoord构造函数的实现,参数a和b通过调用基类的构造函数来初始化基类的数据成员x和y,c赋值给数据成员2。请在注释“//**4**”之后添加适当的语句。
输出结果如下;
[1,2]
[3,4,5]
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件tese9_3.cpp清单如下:
include<iostream.h>
class Coordinate
{protected:
//** 1 **
public:
Coordinate(int a=0, int b=0);
//** 2 **
};
Coordinate::Coordinate(int a, int b)
{
//** 3 **
}
void Coordinate::Display() const
{
cout << '[' << x << ", "<< y << ']' << end1;
}
class ThreeDCoord:public Coordinate
{
int z;
public:
ThreeDCoord(int a=0, int b=0, int c=0);
virtual void Display() const;
};
//** 4 **
void ThreeDCoord::Display() const
{
cout << '[' << x << ", "<< y << ", "<< z << ']' << end1;
}
void main ()
{
Coordinate c(1, 2);
ThreeDCoord t(3, 4, 5);
c.Display ();
t.Display ();
}
下列关于派生类的构造函数的说法中,哪个是错误的 ______。
A.派生类不继承基类的构造函数和赋值运算
B.派生类的构造函数可以调用基类的构造函数
C.派生类的构造函数先于基类的构造函数执行
D.在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象中的基类成员
A.构造函数用于代替类中的一个成员函数来在创建对象时给对象赋初值(通常是成员变量),它是由人工设计的,因此可以在任何时候,任何地方来调用它
B.构造函数的名字与类名相同,因此同类的不同对象的构造函数是相同的
C.构造函数的参数多少没有定制,它的返回值的类型为void型
D.构造函数的名字与类名相同,因此一个类只有一个构造函数,即构造函数不可重载
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!