已知两个类R、S,类R中定义了一个私有方法F1和一个公有方法F2;类S中定义了一个公有方法 F3,类S为类
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
class S:public R{…};
class T:private S{…};
在关于类S的描述中正确的是(18),在关于类T的描述中正确的是(19)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
class S: public R {…};
class T: private S {…};
在关于类S的描述中正确的是(45);在关于类T的描述中正确的是(46)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
class S: public R {…};
class T: private S {…};
在关于类S的描述中正确的是(5);在关于类T的描述中正确的是(6)。
A.类S的对象可以访问F1,但不能访问F2
B.类S的对象可以访问F2,但不能访问F1
C.类S的对象既可以访问F1,也可以访问F2
D.类S的对象既不能访问F1,也不能访问F2
试设计并实现不相交集合类结构,并写出union和find算法。
集合S上的等价关系R指的是满足自反、对称、传递性质的关系,S中具有等价关系R的元素构成的子集称为等价类,S中所有的等价类构成了集合S的一个划分:S中的每一个元素都在且仅在一个等价类中(等价类之间不相交)。
等价类(集合)作为一种抽象数据类型可以定义两种基本操作:find和union。对于S中的元素x,find(x)返回元素x的等价类名;union(i,j)执行的操作是将等价类i和等价类j合并成一个新的等价类。如果要把(a,b)添加到等价关系R中,即定义S中的元素a和b等价,根据等价关系的定义,实际上是将a所在的等价类和b所在的等价类合并。因此首先要分别对a和b进行find操作,看它们是否在同一个等价类。如果它们不在同一个等价类,则执行union(find(a),find(b))操作,将a和b所在的两个等价类合并为一个新的等价类。这样的操作改变了S的划分方法。
一、定义两个类:圆类Circle,和圆柱体类Cylinder,要求如下: (1)编写一个圆类Circle,该类拥有: l 成员变量:radius(私有,浮点型); // 存放圆的半径; l 两个构造方法: Circle() // 将半径设为0 Circle(double r ) //创建Circle对象时将半径初始化为r l 三个成员方法: double getArea() //获取圆的面积 double getPerimeter() //获取圆的周长 void showCircle() //将圆的半径、周长、面积输出到屏幕 (2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有: l 成员变量:double height(私有,浮点型); // 圆柱体的高; l 构造方法: Cylinder (double r, double h ) //创建Circle对象时将半径初始化为r 注意: Cylinder (double r, double h ) 必须使用父类的 Circle(double r ) 来初始化圆柱体的半径 l 成员方法: double getVolume() //获取圆柱体的体积=底面积*高,底面积为圆的面积 注意: double getVolume() 必须使用父类的double getArea()来求解圆柱体的底面积 void showCircle() //将圆柱体的半径,高和体积输出到屏幕 二、在主类(即包含main方法的类)中, 实现分别创建圆类Circle类和圆柱体类Cylinder的实例对象,并分别通过键盘输入来设置圆的半径、圆柱体的半径和高,且分别显示圆半径、圆面积、圆周长,圆柱体的体积。 三、重要提示:实验代码只需要在如下代码框架中对应位置补充即可。 框架代码简要说明: l为提高程序可读性和友好性,对本实验的要求进行了模拟菜单操作的设计; l菜单功能说明: 当输入11,利用键盘输入数据,来创建圆类Circle类的实例对象,求解圆面积、圆周长,最后输出圆的相关信息,即圆半径、圆面积、圆周长; 当输入12,利用键盘输入数据,来创建圆柱体类Cylinder的实例对象,求解圆柱体的体积,最后输出圆柱体的相关信息,即圆柱体半径、高,以及体积; 当输入quit,则退出
(1)定义类circle的保护数据成员r和area,它们都是double型的数据。请在注释“//**1**”之后添加适当的语句。
(2)添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在汁释“//**2**”之后添加适当的语句。
(3)添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将具分别赋值给数擗成员h和基类的r,请在注释“//**3**”之后添加适当的语句。
(4)完成派生类column的成员函数print的定义,使其以格式“r=_area=_”先输出半径r和底面积area,再以格式“h=_vol=_”输出高h和体积vol的值,请在注释“//**4**”之后添加适当的语句。
输山结果如下:
r=1 area=3.1416
h=2 vo1=6.2832
注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。
源程序文件test1_3.cpp清单如下:
include<iostream.h>
const double pi=3.1416;
class circle
{
protected:
//**1**
public:
//**2**
circle(double radius){ r=radius;}
void print()
{
area=r*r*pi;
cout<<"r="<<r<<" "<<"area="<<ared<<endl;
}
};
class column: protected circle
{
protected:
double h;
public:
//** 3 **
void print()
{
// ** 4 **
}
};
void main()
{
column col(1.0,2.0);
Col.print();
}
假定我们有一个环R的一个分类,而S是由所有的类[a], [b],[c],....所作成的集合。又假定
规定两个S的代数运算。证明,[0]是R的一个理想,并且给定的类刚好是模[0]的R的剩余类.
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!