答案:(P167)运行时
[解析]多态性包括静态的(编译时)多态性和动态的(运行时)多态性。
11. 设函数 sum 是由函数模板实现的,并且 sum(3,6)和 sum(4.6,8)都是正确的函数调用,
则函数模板具有 个类型参数。
答案:(P61)2
12. 执行下列代码 string
str("HelloC++"); cout<<st
r.substr(5,3); 程序的输
出结果是 。
答案:(P42)C++
[解析]substr 取子字符串,第 1 个参数表示要截取子串在字符串中的位置,第 2 个表示取多少
个字符。
13. 在面向对象的程序设计中,将一组对象的共同特性抽象出来形成 。
答案:(P38)类
[解析]类是相似特征的对象的抽象,对象是类的一个实例。
14. 定义类动态对象数组时,元素只能靠自动调用该类的 来进行初始化。
答案:(P77)无参构造函数
[解析]使用 new 创建动态对象数组,不能有参数,所以只能调用无参的构造函数,初始化对象
15. 已知有 20 个元素 int 类型向量 V1,若用 V1 初始化为 V2 向量,语句是
。答案:(P151)ector <int>V2(V1);
[解析]采用向量初始化另一个向量的形式:vector <type> name1(name);
六、程序设计题(本大题共 1 小题,共 10 分)
1. 已定义一个 Shape 抽象类,在此基础上派生出矩形 Rectangle 和圆形 Circle 类,二者都有
GetPerim()函数计算对象的周长,并编写测试 main()函数。
class Shape
{public:
Shape(){}
~Shape(){}
virtual float GetPerim()=0;
}
答案:class Rectangle:public Shape
{public:
Rectangle(float i,float j):L(i),W(j){}
~Rectangle(){}
float GetPerim(){return 2*(L+W);} priv
ate:
float L,W;
};
class Circle:public Shape
{public:
Circle(float r):R(r){}
float GetPerim(){return 3.14*2*R;} priv
ate:
float R;
};
void main()
{Shape * sp; sp=ne
w Circle(10);