c++多态习题

1.已知f1和f2是同一类中的两个成员函数,若f1的实现代码体内不能调用f2, 则可能的情况是:
(A)fl和f2都是静态函数
(B) fl是静态的,f2不是
© f1不是静态的,f2是静态的
(D) fl和f2都不是静态函数

2.一个对象所占的内存空间中可以保存下面哪类数据?
(A)静态数据成员
(B)内联函数代码.
©所有成员函数的入口地址
(D)虚函数表的入口地址

3.下面关于new和delete操作符的说法,哪个是不正确的:
(A)使用new操作符,可以动态分配全局堆中的内存资源。
(B)用new申请的数组,必须用delete[] 释放。
©用new申请的空间,即使不调用delete 释放掉,当程序结束时也会自动释放掉。
(D)执行语句A * p=new A[100时, 类A的构造函数会被调用100次。

4.下列哪种函数可以是虚函数:
(A) 自定义的构造函数
(B)拷贝构造函数
©静态成员函数
(D)析构函数

  1. C++的最小编译单位是:
    (A)工程中每个.cpp和.h文件
    (B)工程中每个.cpp文件
    © 工程中每个.h文件
    (D) 工程中所有文件

6.下面表达式中不可能作为左值(赋值运算符左侧)的是:
(A)a=b
(B) *p
© f(a,b)
(D)&a

7.在实现函数A& f(A& obj)时, 下面的哪- -个表达式可以出现在return 语句中?(A)new A( )
(B) obj
©& obj
(D) new A(obj)

8.判断类A的两个对象al与a2是否是同一个对象的方法是:
(A) 利用调试器,查看al与a2各成员数据的值是否相等
(B)重载运算符,用它来判断各成员数据的值是否相等。
©判断这两个对象的地址值是否相等。
(D)比较创建时使用的构造函数的实参是否相同。

9.已知obj是一个对象,下面哪一个表达式是不可能出现的?
(A) obj. 100
(B) !obj
© obj++
(D) obj,100

10.下面哪种情况不属于函数重载:
(A) 类中定义的运算符函数
(B)同一个名字, 参数个数不同
(C)派生类中重新定义了一个和基类中的原型完全相同的函数
(D) 类中定义了两个同名同参数表的函数,但其中一个是常成员函数
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一个简单的继承与多的练习题,希望能帮助你巩固相关知识。 假设有一个图形类 Shape,其中包含一个纯虚函数 getArea(),用于计算该图形的面积。现在要定义两个子类,分别是矩形类 Rectangle 和圆形类 Circle。请完成以下任务: 1. 定义 Shape 类: ```c++ class Shape { public: virtual double getArea() = 0; // 纯虚函数 }; ``` 2. 定义 Rectangle 类,继承自 Shape 类,包含两个成员变量 width 和 height,以及实现 getArea() 函数的具体方法: ```c++ class Rectangle : public Shape { private: double width; double height; public: Rectangle(double w, double h) { width = w; height = h; } double getArea() { return width * height; } }; ``` 3. 定义 Circle 类,同样继承自 Shape 类,包含一个成员变量 radius,以及实现 getArea() 函数的具体方法: ```c++ class Circle : public Shape { private: double radius; public: Circle(double r) { radius = r; } double getArea() { return 3.1415926 * radius * radius; } }; ``` 4. 在主函数中创建一个 Shape 指针数组,分别指向一个 Rectangle 和一个 Circle 对象,并计算它们的面积: ```c++ int main() { Shape* shapes[2]; shapes[0] = new Rectangle(4, 5); shapes[1] = new Circle(3); for (int i = 0; i < 2; i++) { cout << "Area of shape " << i << ": " << shapes[i]->getArea() << endl; delete shapes[i]; } return 0; } ``` 以上就是一个简单的继承与多的练习题,希望能够帮助你巩固相关知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值