题目内容 (请给出正确答案)
[单选题]

只能放到构造函数初始化列表中赋值的类成员包括:

A.没有默认构造函数的类类型成员

B.常量成员

C.引用成员

D.指针成员

E.布尔类型成员

F.整型数组成员

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“只能放到构造函数初始化列表中赋值的类成员包括:”相关的问题

第1题

下列描述中哪个是正确的?

A.派生类构造函数中没有调用父类构造函数则没有对父类初始化

B.子类构造函数不能是内联函数

C.派生类构造函数中可以对父类数据成员赋值

D.构造函数的返回值为void类型

点击查看答案

第2题

下列关于派生类的构造函数的说法中,哪个是错误的 ______。

A.派生类不继承基类的构造函数和赋值运算

B.派生类的构造函数可以调用基类的构造函数

C.派生类的构造函数先于基类的构造函数执行

D.在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象中的基类成员

点击查看答案

第3题

实验四 继承与派生 一、实验目的 1、学习定义和使用类的...

实验四 继承与派生 一、实验目的 1、学习定义和使用类的继承关系,定义派生类。 2、熟悉不同继承方式下对基类成员的访问控制。 3、学习利用虚基类解决二义性问题。 4、类的组合的练习。 5、通过上机练习搞清有关继承的基本知识和相关概念。 (1)基类和派生类的关系。 (2)派生类的定义和派生类构造函数的定义方法。 (3)基类成员在不同继承方式下在派生类中的访问权限。 6、通过上机搞清子类型和赋值兼容规则。真正理解“白狗就是狗”的概念。 7、了解多继承的特点和二义性出现的情况以及虚基类。 二、实验任务 1、定义一个基类Animal,有私有整型成员变量age。构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题?把age改为什么访问权限的就不会有问题了?编程试试看。分别在两个类的构造函数和析构函数中用cout输出不同的提示信息,在主函数中定义派生类的对象,观察构造函数和析构函数的执行情况。 2、定义一个Shape基类,包括整型变量的变量成员x,y,来表示位置,定义带参的构造函数可以初始化x,y,再由此定义出派生类;矩形类Rect和圆类Circle,Rect类增加宽和高w,h两个变量,Circle类增加半径r,分别定义两个派生类的构造函数,可以初始化各自变量(包括基类成员)。 3、编写一个在职研究生相关数据输入和显示程序。 请按下列要求编程。 (1)构造类研究生类数据有学号、姓名(char name[20])、性别(char sex)、年龄(int age)、班级号(int classNum)和期末总分(double score)。 有两个公有成员函数,一个是设置研究生的姓名、性别、年龄和班级号和期末总分的值:void SetValue(char* n, char _sex, int a, int classN, double s);另一个是显示输出函数void display();显示 研究生 姓名、性别、年龄 和班级号和期末总分 。 (2)在职人员数据有职工号、姓名(char name[20])、职称(int level)和部门(int department)。 有两个公有成员函数,一个是设置 在职人员的姓名、职称和部门的值函数:void SetValue(char* n, int level, int d);另一个是显示输出函数void display();显示在职人员的姓名、 职称和部门。 注*: 职称:从1到8 部门:1到3 (3)构造在职研究生类,该类是研究生类和在职人员的派生类。 有两个公有成员函数,一个是设置在职研究生的姓名、性别、年龄和班级号、期末总分、职称和部门的值:void SetValueExtra(char* n, char _sex, int a, int classN, double s, int level, int d);另一个是显示输出函数void display();显示 在职研究生的姓名、性别、年龄和班级号、期末总分、职称和部门 。 在主函数中,分别定义一个研究生和一个在职人员,给定相关数据,并再将输入数据输出显示在屏幕上。 再定义一个在职研究生对象,给定相关数据,并再将输入数据输出显示在屏幕上。 按上述要求编写出程序并上机调试。 附加题(加分): 4、P164题5-11 编写程序,定义机动车类Vehicle,包括的数据成员有出厂日期和售价,并定义成员函数可以设置这些数据成员,再定义Print()成员函数输出成员变量内容,然后定义Car类和Trunk类,分别扩展各自的内容,如Car类增加乘客数量,Trunk类增加载重吨数,并都可以通过构造函数初始化各自成员变量和其基类成员,最后都能输出相关信息。

点击查看答案

第4题

使用VC6打开考生文件夹下的工程test29_3。此工程包含一个test29_3.cpp,其中定义了二维坐标类Coordinate和三维坐标类ThreeDCoord,其中ThreeDCoord类由Coordinate类public派生,但两个类的定义并不完整。请按要求完成下列操作,将程序补充完整。

(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 ();

}

点击查看答案

第5题

1.1 创建管理员Manager类。 Manager类中包含以下内容: ...

1.1 创建管理员Manager类。 Manager类中包含以下内容: (1)私有成员变量(变量名自定义),分别保存管理员编号,姓名以及年龄; (2)可读写属性分别访问编号、姓名,只读属性访问年龄; (3)静态数据int count,此数据在创建管理员对象时用来统计当前管理员对象人数; (4)定义无参和有参构造函数设置管理员基本信息,其中无参函数将所有字段值用自己的学号,姓名,年龄等赋值,有参函数则用3个形参分别为字段赋值;并完成对象人数统计。 (5)定义公有方法void ShowInfo(),输出员工基本信息; (6)定义公有静态方法int GetCount(),返回当前员工人数。 (7)主函数中分别使用无参和有参构造创建该类对象,并分别显示对象信息,以及管理员对象总人数。 1.2 在1.1的基础上,继续创建Manager类的派生类SuperManager类 (1)添加保存超级管理员等级信息的私有数据int level; (2)添加带有4个参数的有参构造函数,用形参初始化编号、姓名、年龄和等级; (3)将1.1中Manager类的ShowInfo()改为虚方法; (4)在SuperManager类中重载基类ShowInfo()方法,输出派生类对象的所有信息; (5)在1.1的主函数中,添加创建该派生类对象的代码,并输出该对象所有信息。

点击查看答案

第6题

应添加“virtualvoidGetNamt!=0;”。 (2)应添加“constchar*GetName2”。 (3)应添加“TC2(char*str)”。 (4)应添加“m_str[i]=0;”。 【解析】本题第1处要求“在类TC1中定义接口函数GetName,为纯虚函数”。在C++中,在基类中用virtual声明成员函数为虚函数。纯虚函数是在声明虚函数时被“初始化”为0的函数,即“virtualvoidGetName=0;”。第2处要求“函数GetName2实现获得名字的缓存,但只获得读允许操作这个缓存”。只能引用数据成员,而不能修改,所以使用常成员函数,其一般形式为“const函数类型函数名”,即“constchar*GetName2”。第3处要求“实现TC2的构造函数”。TC2的构造函数与类TC2的名称应该相同,而且第3处的大括弧中是对字符数组str的操作,所以类TC2的构造函数中的参数为str,即这里补全为“TC2(char*str)”。第4处要求“完成TC2的构造函数,实现对名字的处理”,补全类TC2的构造函数,构造函数中的名字变量str对应于类TC中的成员变量m_str,所以这里补全变量赋值操作“m_str[i]=0;”。

点击查看答案

第7题

声明一个Dog类,(1)包含age、weight的属性,(2)定义构造函数完成数据成员初始化,(3)定义复制构造函数,(4)定义输出数据成员的成员函数。 在main函数中定义两个Dog类的对象d1,d2,并把d1的值复制给d2(注意不是赋值),输出两个对象的数据成员。
点击查看答案

第8题

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

(1)将类X的静态数据成员y初始化为1。请在注释“//**1**”之后添加适当的语句。

(2)完成类Y的构造函数Y(int i,int j)的定义,将参数i赋值给类Y的数据成员,X的对象a中的数据成员x,并且把参数j赋值给类X的数据成员y,请在注释“//**2**”之后添加适当的语句。

(3)完成类Y的成员函数void Display()的定义,将Y的数据成员,X的对象a中的数据成员x和类X的数据成员y按照“x=_,y=_”的形式显示出来(“_”代表一个数字),请在注释“//**3**”之后添加适当的语句。

输出结果如下:

x=5,y=l

x=6,y=9

x=5,y=9

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

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

include<iostream.h>

class X

{

friend class Y;

public:

void Set(int i) {x=i;}

void Display()

{

cout<<"x="<<x<<",";

cout<<"y="<<y<<endl;

}

private:

int x;

static int y;

};

class Y

{

public:

Y(int i, int j)

void Display();

private:

X a;

};

//**1**

Y::Y(int i, int j)

{

//**2**

}

void Y::Display()

{

//**3**

}

void main ( )

{

X b;

b.Set(5);

b.Display();

Y c(6,9);

c.Display();

b.Display();

}

点击查看答案

第9题

阅读以下说明和C++代码,将解答写入对应栏内。

【说明】

源程序文件vectorClass.cpp,其中定义了用于表示向量的类vector,但类vector的定义并不完整。请按要求完成下列操作,将类vector的定义补充完整,并给出输出结果。

1.补充类vector的构造函数,该函数有参数x和y,它们都是int型的数据,默认值都为 0。请使用参数列表的形式分别将类的数据成员a和b分别初始化为参数x和y的值。

2.完成类vector的成员函数input(int x,int y)的定义,将int型的参数x和y分别赋值给数据成员b和a。

3.完成类vector的友元函数friend double Multiply(vector &x,vector &y)的定义,先定义 double型的临时变量c,然后将参数对象x和对象y的数据成员a与b分别相乘再相加后赋值给c,最后返回c的值。

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

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

include < iostream. h >

class vector

{

int a;

int b;

public:

vector((1)):(2)

{

}

void input(int x, int y)

{ (3)

}

void output( )

{

cout<<'('<<a<<','<<b<<")" <<endl;

}

friend double Multiply(vector &x,vector &y);

};

double Multiply(vector &x,vector &y)

{

double c;

(4)

return c;

}

void main( )

{

vector x(10,20),y;

double d;

y. input(2,3)

d=Multiply(x,y);

cout<<d<<endl;

}

程序输出结果是:(5)。

点击查看答案

第10题

实现一个简单的银行账户管理系统,如下图所示。 [图] 1、...

实现一个简单的银行账户管理系统,如下图所示。1、程序功能如下: (1)当点击【创建储蓄卡账户】时,显示如下信息:其中卡号为随机生成的一个在100000到499999之间的一个值。(2)当点击【存款】,并在后面的文本框中输入存款金额。显示如下信息。(3)当点击【取款】,并在后面的文本框中输入取款金额。显示如下信息。(4)当点击【查询账户余额】。显示如下信息。(5)注意:在操作时要给出操作失败的提示及其原因。如下图:2. 程序的主体部份已经做好,请参见附件——Bank。 3. 请在Bank的代码视图中完成任务1:创建一个账户类,设计其成员变量和方法。 (1)主要的成员变量有卡号和余额,。 (2)主要的方法包括取款和存款以及对卡号和余额的获取。 (3)用构造函数对卡号和余额初始化,要求在构造函数中对卡号为随机生成的一个在100000到499999之间的一个值,余额统一定为0元。 4. 请在Bank的代码视图中完成任务2到任务5:实现系统功能。请在程序的相应位置写上适当的代码。 (1)任务2:实例化储蓄卡用户账户(new)。 (2)任务3:将accountNo赋值为创建的账户卡号。 (3)任务4:调用Account类的取款方法,并将取款结果赋值给message (4)任务5:调用Account类的存款方法,并将存款结果赋值给message (5)任务6:调用Account类的获取卡号和余额方法,并将账户卡号和余额赋值给message

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信