一,判断题
1、友元函数用于允许一个函数访问不相关的私有部分。
2、构造函数可以被继承。
3、动态绑定的多态性是通过虚函数实现的。
4、在c++中,传引用等同于传地址调用。
5、重载函数必须有不同的参数列表。
6、可以用delete释放不是new运算符分配的内存。
7、类成员的默认访问方式是private。
8、在类Time中析构函数可以声明为:void~Time(int);
9、const对象必须初始化。
10、在c++中,只能重载已有的运算符。
·
·
·
答案:
1、√
理解一下友元函数的性质就知道了。
2、×
构造函数是不可以被继承的。
3、√
虚函数对于多态具有决定性的作用,有虚函数才能构成多态。
4、×
传引用不能等同于传地址,在函数调用时,传地址是把一个地址传给一个指针。
5、√
如果同一作用域内的几个函数名字相同但形参列表不同,我们称之为函数重载(overload)。
6、X
在c++中,运算符new分配的动态内存空间,只能由delete删除释放,同理delete只能删除释放new分配的内存空间。
7、√
用class定义,它的成员变量值只能在其内部访问,也就是默认访问权限是private。
8、×
析构函数只能有一个,并且是无参数的。
9、√
const定义的变量值不能够被改变,因此必须要初始化。
10、√
不存在的运算符咋重载。
二、选择题
1、关键字_____说明对象或变量初始化后不会被修改。
答案:const
2、如果调用带有默认参数的函数时缺少一个参数,则_____参数就作为这个参数。
答案:最后一个参数
3、成员函数可以声明为静态的,条件是它不访问_____类的成员。
答案:非静态类
4、内敛函数执行起来比标准函数_______。
答案:更快
5、默认参数的值是由_________提供。
答案:该函数和调用程序
6、在c++中,混合类型表达式________。
答案:是允许存在的
7、表达式long(intVar)也可以表示为_____。
答案:(long)intVar
8、静态数据成员的生存期_______ 。
答案: 与整个程序相同。
9、要让一个类中的所有对象具有共同的数据,请使用______。答案:静态数据成员。
10、设置虚基类的目的是:
答案:消除二义性
三、指出下列程序片段的错误标号,写出正确的语句或解释错在何处。
1、
1) int index=675;
2)const int *ptr=&index;
3) int *const ntptr=&index;
4) *ptr=555;
5) *ntptr=666;
6) int another=8;
7) ptr=&another;
8) ntptr=&anther;
解析:2)const int *ptr 是指这个指针指向的是常量对象。指向的值类型必须是const int ××;
3)int *const ntptr 是一个常量指针,它只能指向一个对象,就不能把其他的变量赋值给它。
4)错误,我们只能读取*ptr的值,但是不可以赋值给它。
8)*ntptr是常量指针,不能指向别的变量。
2、
int app;
app=new int[15];
delete app;
int app应该改为 int* app;
delete app 应该改为: delete[] app;
3、
下面程序为什么会编译错误,并改改正错误(提出解决办法)
class window //有错误的代码
{
protected:
int basedata;
};
class border: public window {
}; //公有继承
class menu: public window {
}; //公有继承
class border_and_menu: public border,public menu
{
public:
int show()
{
return basedata; //报错
}
};
上述代码报错的原因分析: basedata重名,会产生二义性,应该使用虚基类,代码修改为:
class border:virtual public window {};
class menu:virtual public window {};
===========================================
template<T