网站大量收购独家精品文档,联系QQ:2885784924

4大学期末考试计算机面试和笔试题知识.docVIP

4大学期末考试计算机面试和笔试题知识.doc

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、基础知识wss 1. 各类修饰符的作用: static的作用: (1)函数体内(数据长久性) 作用范围就是该函数体,并只分配一次内存,且在下一次调用时,其值会维持为上一次调用时的值;(auto变量则是每次调用时清零) (2)文件/模块中(数据隐藏性): a.普通全局变量/函数:具有全局可见性(即在所有文件中都可见:若本文件中没有该全局变量,则通过extern进行扩展); b. 静态全局变量/函数:具有局部可见性(即只在当前文件/模块内可见); (3)默认初始化值为0,原因是静态数据区默认值为0,因此可以减少程序员的工作量。 (4)类中的静态数据成员: 1.被该类所有对象所共享(包括其派生类); 2.独立于类对象而存在,不是类对象的组成部分(因此sizeof时不计算在内); 3.只能在类外定义或者初始化(静态成员变量被该类所有对象所共享,因此如果在该类内部进行定义,容易引起混乱)。 (5)类中的静态成员函数: 1.被该类所有对象所共享(包括其派生类); 2.没有this指针,因此只能调用静态数据成员,而无法调用普通数据成员; 3.不可被声明为virtual、const; 4.无需创建类对象可实现函数访问,即可通过类作用域直接访问; const的作用: (1)用于普通变量:将被修饰变量定义为常量,以防止被修改; (2)用于函数返回值类型:string类型的加法赋值函数返回s=s1+s2; (3)用于函数形参类型:防止形成被修改,并且扩展形参范围(const形参可以接受const或非const实参,而非const形参只能接受非const实参); (3)用于修饰函数体:const成员函数无法修改其调用类对象的数据成员(若用mutable修饰后,则可修改其数据成员); (4)关于volatile:类似于const,但是在编译器认识范围之外可以被改变。 引用的作用:(作用类似于指针) (1)用于普通变量:其是目标变量的一个别名,对其进行操作相当于对目标变量进行操作;其不占用内存空间;(数组没有引用) (2)用于函数返回类型;(用于连续赋值) (3)用于函数形参:引用传递和地址传递的效果是相同的,即函数中所有对形参的操作都是对主函数中实参的操作(但是指针形参会产生形参副本和存储单元);此外,引用形参不产生形参副本且不产生存储单元,即直接使用实参本身,并使用用于大型数据的形参传递,可提高运行效率(对于普通形参,会产生形参副本并分配存储单元,对于类对象形参还会调用拷贝构造函数); (4)const (常引用):经常用作函数形参类型,const作用是使得形参无法被修改,作用是避免调用复制构造函数,提高代码效率; (5)可用于产生多态(Derived d; Base b=d;) (6)引用与指针的区别 1.引用必须被初始化,指针不必初始化;? 2.不能改变引用所指对象,可以改变指针所指对象; 3.不存在指向空值的引用,但是存在指向空值的指针。 2. #define(宏定义)的相关讨论 宏定义(注意括号的使用以防止边界效应,没有分号):#define min(a,b) ( ( (a)(b) )?(a):(b) ) a. #define与const 相同点:二者均可定义常量; 不同点: (1)编译器处理方式不同   define是在预处理阶段展开。   onst 是编译运行阶段使用。 类型和安全检查不同   define宏没有类型,类型检查。  const常量有具体类型,类型检查。 存储方式不同   define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。 const常量会在内存中分配。void (char str[100]) { int s=sizeof(str); //无论str[]中的维数是多大,此时s=4 return s; } 原因:实参数组传入到函数的形参中,此时形参数组会退化成指针,相当于传递了一个指针变量(即长整型地址变量long),因此sizeof(str)==sizeof(long)=4。 (2)class A { //空类 }a; sizeof(a)=1; 原因:空类不含有数据成员或成员函数,理论上不占用内存空间。但是,空类是可以进行实例化的,而一旦进行实例化后该对象则会占用内存空间。因此,系统为保证空类在实例化过程中不会出错会分配给空类一定的内存空间,32位系统下所分配的内存空间1 byte。 6.函数重载、覆盖、隐藏 重载是指相同的函数名,但参数的类型或个数中只要有所不同,便进行再定义,编译之后重载的函数都具有不同的地址,也就是说虽然函数名相同,实际上是不同的函数,在调用时,编译系统会根据不同之处自动区别是调用哪一个函数。对于普通函数和后面要学的类的成员函数都适用。它们的地址在编译时就确定了

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档