2021东南大学916复试553C++整理.pdfVIP

  • 36
  • 0
  • 约2.81万字
  • 约 25页
  • 2023-03-07 发布于江苏
  • 举报
2021东南⼤学916复试553C++整理 问答题 1. ⽐较值传递和引⽤传递的相同点和不同点。 (1)值传递是 当发⽣函数调⽤时,给形参分配内存空间,并⽤实参来初始化形参 (直接将实参的值传递给形参)。这⼀过程是参数值的 单向传递过程,⼀旦形参获得了值便与实参脱离关系,此后⽆论形参发⽣了怎样的改变,都不会影响到实参。 (2)引⽤传递将引⽤作为形参,在执⾏主调函数中的调⽤语句时,系统 ⾃动⽤实参来初始化形参。这样形参就成为实参的⼀个别名,对形 参的任何操作也就直接作⽤于实参。 2 什么叫内联函数?它有哪些特点? 1. 定义时使⽤关键字 inline 的函数叫做内联函数 ;编译器在编译时在调⽤处⽤函数体进⾏替换,节省了参数传递、控制转移等开销 ; 2. 内联函数体内不能有循环语句和 switch 语句 ; 3. 内联函数的定义必须出现在内联函数第⼀次被调⽤之前 ;对内联函数不能进⾏异常接⼝声明; 3 什么叫复制构造函数?复制构造函数何时被调⽤? 复制构造函数是⼀种特殊的构造函数,具有⼀般构造函数的所有特性,其形参是本类的 对象的引⽤ (const T )。其作⽤是使⽤⼀个已经存 在的对象 (由复制构造函数的参数 定),去初始化同类的⼀个新对象。 (1) 当⽤类的⼀个对象去初始化该类的另⼀个对象时; (2) 如果函数的形参是类的对象,调⽤函数时进⾏形参和实参结合时; (3) 如果函数的返回值是类的对象,函数执⾏完成返回调⽤者时。 4、复制构造函数与赋值运算符 (=)有何不同? 从概念上区分 :复制构造函数是构造函数,⽽赋值操作符属于操作符重载范畴,它通常 是类的成员函数 从原型上来区分 : 复制构造函数原型 ClassType(const ClassType );⽆返回值 ; 赋值操作符原型 ClassType operator=(const ClassType );返回值为 ClassType 的引⽤,便于连续赋 值操作 从使⽤的场合来区分 : 复制构造函数⽤于产⽣对象,它⽤于以下⼏个地⽅ :函数参数为 类的值类型时、函数返回值为类类型时以及初始化语句 5 什么叫作⽤域?有哪⼏种类型的作⽤域? 作⽤域讨论的是标识符的有效范围,作⽤域是⼀个标识符在程序正⽂中有效的区域。 C++的作⽤域分为 :函数原型作⽤域、函数作⽤域、⽂件作⽤域(全局作⽤域)、块作⽤ 域 (局部作⽤域)、类作⽤域和名字空间作⽤域。 6 什么叫做可见性?可见性的⼀般规则是什么? 可见性是标识符是否可以引⽤的问题 ; 可见性的⼀般规则是 :标识符要声明在前,引⽤在后,在同⼀作⽤域中,不能声明同名的标识符。 对于在不同的作⽤域声明的标识符,遵循的原则是 :若有两个或多个具有包含关 系的作⽤域,外层声明的标识符如果在内层没有声明同名 标识符时仍可见,如果内层声明了同名标识符则外层标识符不可见。 7 什么叫静态数据成员?他有何特点? 类的静态数据成员是类的数据成员的⼀种特例,采⽤ static 关键字来声明。对于类的普通数据成员,每⼀个类的对象都拥有⼀个拷贝,就 是说每⼀个对象的同名数据成员可以分别存储不同的值,这也是保证对象拥有区别于其他对象的特征的需要,但是静态数据成员,每个类只 要⼀个拷贝,由所有该类的对象共同维护和使⽤,这个共同维护,使⽤也就实现了同⼀类的不同对象之间的数据共享。 8 什么叫静态函数成员?他有何特点? 使⽤ static 关键字声明的函数成员是静态的,静态函数成员属于整个类,被同⼀个类的所有对象共同维护,为这些所有对象共享。 静态成员函数具有以下两个⽅⾯的好处 : ⼀是由于静态成员函数只能直接访问同⼀个类的静态数据成员,可以保证不会对该类的其余数据成员造成负⾯影响; ⼆是同⼀个类只维护⼀个静态函数成员的拷贝,节约了系统的开销,提⾼ 程序的运⾏效率。 9 什么叫友元函数?什么叫友元类? 友元函数是使⽤关键字 friend 关键字声明的函数,它可以访问相应类的保护成员和私有成员。友元类是使⽤ friend 关键字声明的类,它的 所有成员函数都是相应类的友元函数。 友元不可继承,没有传递性。 10 在函数内部定义的普通局部变量和静态局部变量在功能上有何不同?计算机底层对这两类变量做了怎样的不同处理导致了这种差异? 局部作⽤域中静态变量的特点是 :它并不会随着每次函数调⽤⽽产⽣⼀个副本,也不会随着函数的返回⽽失效,定义时未 定初值的基本

文档评论(0)

1亿VIP精品文档

相关文档