C++面试试题解析:重载函数与构造析构

需积分: 9 0 下载量 20 浏览量 更新于2024-09-14 收藏 382KB PDF 举报
"C++面试题 适合" 这篇资料是一份C++面试题集,源自2011年腾讯技术类校园招聘笔试试题,由九度互动社区网友分享。试题涵盖了一些基本的C++概念,如函数调用、重载函数以及对象构造与析构。以下是针对这些知识点的详细解释: 1. 函数调用: 题目中的第一道选择题涉及到函数的默认参数。函数原型`void hello(int a, int b=7, char* pszC="*")`定义了一个可接受三个参数的函数,其中第二个和第三个参数有默认值。合法的调用方式包括提供所有参数或只提供部分参数,但参数顺序不能改变。选项C中尝试将一个字符串传递给整型参数,这是非法的。 2. 重载函数: 重载函数是在同一个作用域内,函数名称相同但参数列表不同的多个函数。正确答案C指出,重载函数必须有不同的形参列表,可以是参数个数、参数类型或者两者都不同。返回值类型并不是决定函数重载的关键因素,因为调用函数时是根据函数名和传入的参数来决定调用哪个函数的。 3. 对象构造与析构: 第三题考察了C++的继承和对象生命周期。`CSub`类继承自`CBase`类,这意味着在创建`CSub`对象时会先调用基类`CBase`的构造函数,然后是派生类`CSub`的构造函数。同样,当对象销毁时,会先执行派生类的析构函数,再执行基类的析构函数。因此,正确的输出顺序应该是先构造基类,再构造派生类,最后按照相反的顺序析构。 除此之外,C++面试通常还会涉及其他关键知识点,如模板、异常处理、内存管理(栈与堆的区别)、STL容器(如vector、list、map等)、运算符重载、多态、面向对象设计原则(如封装、继承、多态性)以及C++11及更高版本引入的新特性。面试者需要对这些概念有深入理解,并能解决实际编程问题。对于VC++相关的面试,可能还会涉及Windows API编程、MFC框架或者COM组件等知识。