类、对象的定义及类的成员函数、构造函数建立问题 建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol,用来显示每个cylinder对象的体积。
类、对象的定义及类的成员函数、构造函数建立问题 建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol,用来显示每个cylinder对象的体积。
参考答案和解析
公用
相关考题:
( 13 )下列关于派生类构造函数和析构函数的说法中,错误的是A )派生类的构造函数会隐含调用基类的构造函数B )如果基类中没有缺省构造函数,那么派生类必须定义构造函数C )在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D )在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
( 13 )补充完整下面的类定义:const double PI=3 .14;class Circle{ // 圆形物体的抽象基类protected:double r; // 半径public:Circle ( double radius=0 ) : r ( radius ) {}【 13 】 ; // 计算圆形物体表面积的纯虚函数声明};class Cylinder:public Circle { // 圆柱体类double h; // 高度public:Cylindr ( double radius=0, doubli height=0 ) :Circle ( radius ) , h ( height ) {}Virtual double Area () { // 计算圆柱体的表面积return 2*PI*r* ( r+h ) ;}};
下列关于派生类的构造函数的说法中,哪个是错误的 ______。A.派生类不继承基类的构造函数和赋值运算B.派生类的构造函数可以调用基类的构造函数C.派生类的构造函数先于基类的构造函数执行D.在建立派生类的实例对象时,必须调用基类的构造函数来初始化派生类对象中的基类成员
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序的功能是计算正方体、球体和圆柱体的表面积和体积并输出。程序由4个类组成:类cube、sphere和cylinder分别表示正方体、球体和圆柱体;抽象类 container为抽象类,提供了两个纯虚拟函数surface_area()和volum(),作为通用接口。【C++程序】include<iostream.h>define pi 3.1416class container{protected:double radius;public:container(double radius) {container::radius=radius;}virtual double surface_area()=0;virtual double velum()=0;};class cube:(1){ //定义正方体类public:cube(double radius):container(radius){};double surface_area () {return 6 * radius * radius;}double volum() {return radius * radius * radius;}};class sphere:(2){ //定义球体类public:sphere(double radius): container(radius){};double surface_area() { return (3);}double volum() {return pi * radius * radius * radius * 4/3;}};class cylinder:(4){ //定义圆柱体类double height;public:cylinder(double radius,double height):container(radius){container::height=height;}double surface_are a () { return 2 * pi * radius * (height+radius); }double volum () {return (5);}};void main(){container * p;cube obj1 (5);sphere obj2(5);cylinder obj3(5,5);p=obj1;cout<<“正方体表面积”(<<p->surface_area()<<end1;cont<<“正方体体积”<<p->volume()<<end1;p=obj2;cout<<“球体表面积”<<p->surface_area()<<end1;cout<<“球体体积”<<p->volume()<<end1;p=obj3;cout<<“球体表面积”<<p->surface_area()<<end1;cout<<“球体体积”<<p->volume()<<end1;}
在下面叙述中,不正确的是( )。A.一个类的所有对象都有各自的数据成员,它们共享函数成员B.一个类中可以有多个同名的成员函数C.一个类中可以有多个构造函数、多个析构函数D.在一个类中可以声明另一个类的对象作为它的数据成员
若classB中定义了一个classA的类成员Aa,则关于类成员的正确描述是()A、在类B的成员函数中可以访问A类的私有数据成员B、在类B的成员函数中可以访问A类的保护数据成员C、类B的构造函数可以调用类A的构造函数做数据成员初始化D、类A的构造函数可以调用类B的构造函数做数据成员初始化
下面描述中,正确的是()。A、virtual可以用来声明虚函数B、含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C、即使基类的构造函数没有参数,派生类也必须建立构造函数D、静态数据成员可以通过成员初始化列表来初始化
下列关于拷贝构造函数的描述中,错误的是()。A、一个类可以定义多个拷贝构造函数B、若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数C、当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝D、拷贝构造函数中的参数按引用方式传递
下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()A、基类构造函数—对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员B、基类构造函数—派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数C、派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数—基类构造函数D、对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员—基类构造函数
下列关于类的包含描述正确的是()A、可以使用赋值语句对对象成员进行初始化B、可以使用“参数初始式”调用成员类的构造函数初始化对象成员C、被包含类可以访问包含类的成员D、首先执行自身构造函数,再调用成员类的构造函数
在创建派生类对象时,构造函数的执行顺序是()A、对象成员构造函数―基类构造函数―派生类本身的构造函数B、派生类本身的构造函数―基类构造函数―对象成员构造函数C、基类构造函数―派生类本身的构造函数―对象成员构造函数D、基类构造函数―对象成员构造函数―派生类本身的构造函数
单选题下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。()A基类构造函数—对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员B基类构造函数—派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数C派生类自己的构造函数初始化自定义数据成员—对象成员所在类的构造函数—基类构造函数D对象成员所在类的构造函数—派生类自己的构造函数初始化自定义数据成员—基类构造函数
单选题在创建派生类对象时,构造函数的执行顺序是()A对象成员构造函数―基类构造函数―派生类本身的构造函数B派生类本身的构造函数―基类构造函数―对象成员构造函数C基类构造函数―派生类本身的构造函数―对象成员构造函数D基类构造函数―对象成员构造函数―派生类本身的构造函数
单选题下列关于类的包含描述正确的是()A可以使用赋值语句对对象成员进行初始化B可以使用“参数初始式”调用成员类的构造函数初始化对象成员C被包含类可以访问包含类的成员D首先执行自身构造函数,再调用成员类的构造函数
单选题若classB中定义了一个classA的类成员Aa,则关于类成员的正确描述是()A在类B的成员函数中可以访问A类的私有数据成员B在类B的成员函数中可以访问A类的保护数据成员C类B的构造函数可以调用类A的构造函数做数据成员初始化D类A的构造函数可以调用类B的构造函数做数据成员初始化
判断题造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。A对B错