1: malloc函数分配的空间无法得知存放的数据类型,返回的是void *指针,因此还应该将其返回类型强制转换;如果没有足够的存储空间来分配,new将返回空指针;
2:组合和复合类的区别与联系?组合包括聚合、关联;一个类的某些属性是某些类的对象,就称之谓复合。
3:多态性的关键是指向基类的指针或引用来操作对象;
4:构造函数隐含的返回值由系统内部使用;
5:拷贝构造函数是在对象构造时起作用;= 运算符重载是在对象已经存在时为对象进行赋值用的;
6:如果类中有成员类,成员类的构造函数被优先调用;
7:多态性是通过指向基类的指针来操纵对象的;
8:没有实现纯虚函数的类不能实例化;
9:如何将运算符函数作为成员函数使用?Add operator+(Add b){m+=b.m}
10:成员运算符函数,运算符是双目的话,参数表中只有一个操作数,该操作数作为右操作数;
11:友元函数没有this指针;
12:c++新增强制转换运算符,常量、动态、重释、静态;
13:如何区分静态类型检查和动态类型检查?动态类型检查会破坏封装性。
14:catch语句省略符是捕获try块中的所有异常,即一个万能接收器;
15:重新抛出异常是把异常传递到try块的外部,由外部异常处理器进行处理,而内部的异常处理器将不再处理异常信息;
16:terminate和unexpected函数:后者记录错误并调用terminate函数;当函数实际抛出的异常类型与函数原型的异常规格说明不一致时,就会调用unexpected函数,抛出unexpected异常,该函数不捕获异常,unexpected异常无法得到运行库的帮助;terminate函数记录错误,释放已有系统资源并调用abort函数;
17:如何重载输入输出运算符<< >>,
ostream & operator<< (ostream & cout,Student emp)
{
cout<<emp.name<<endl;
cout<<emp.age<<endl;
......
}
istream & operator>> (istream & stream,Student &emp)
{
cout<<"Enter name:"<<endl;
stream>>emp.name;
......
}