1 比较值传递和引用传递的相同点与不同点。
值传递是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将
实参的值传递给形参)。这一过程是参数值的单向传递过程,一旦形参获得了值便与实参脱
离关系,此后无论形参发生了怎样的改变,都不会影响到实参。
引用传递将引用作为形参,在执行主调函数中的调用语句时,系统自动用实参来初始化
形参。这样形参就成为实参的一个别名,对形参的任何操作也就直接作用于实参。
2 什么叫内联函数?它有哪些特点?
定义时使用关键字 inline 的函数叫做内联函数;编译器在编译时在调用处用函数体进
行替换,节省了参数传递、控制转移等开销;内联函数体内不能有循环语句和 switch 语句;
内联函数的定义必须出现在内联函数第一次被调用之前;对内联函数不能进行异常接口声
明;
3 什么叫复制构造函数?复制构造函数何时被调用?
复制构造函数是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的
对象的引用。其作用是使用一个已经存在的对象(由复制构造函数的参数指定),去初始化
同类的一个新对象。
(1) 当用类的一个对象去初始化该类的另一个对象时;
(2) 如果函数的形参是类的对象,调用函数时进行形参和实参结合时;
(3) 如果函数的返回值是类的对象,函数执行完成返回调用者时。
4 复制构造函数与赋值运算符(=)有何不同?
从概念上区分:复制构造函数是构造函数,而赋值操作符属于操作符重载范畴,它通常
是类的成员函数
从原型上来区分:复制构造函数原型 ClassType(const ClassType &);无返回值;赋值操作
符原型 ClassType& operator=(const ClassType &);返回值为 ClassType 的引用,便于连续赋
值操作
从使用的场合来区分:复制构造函数用于产生对象,它用于以下几个地方:函数参数为
类的值类型时、函数返回值为类类型时以及初始化语句
5 什么叫作用域?有哪几种类型的作用域?
作用域讨论的是标识符的有效范围,作用域是一个标识符在程序正文中有效的区域。
C++的作用域分为:函数原型作用域、函数作用域、文件作用域(全局作用域)、块作用
域(局部作用域)、类作用域和名字空间作用域。
6 什么叫做可见性?可见性的一般规则是什么?
可见性是标识符是否可以引用的问题;
可见性的一般规则是:标识符要声明在前,引用在后,在同一作用域中,不能声明同名
的标识符。对于在不同的作用域声明的标识符,遵循的原则是:若有两个或多个具有包含关
系的作用域,外层声明的标识符如果在内层没有声明同名标识符时仍可见,如果内层声明了
同名标识符则外层标识符不可见。
7 什么叫静态数据成员?他有何特点?
类的静态数据成员是类的数据成员的一种特例,采用 static 关键字来声明。对于类的普