欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    C++ 程序员面试经典问题.docx

    • 资源ID:3153672       资源大小:39.97KB        全文页数:6页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++ 程序员面试经典问题.docx

    C+ 程序员面试经典问题C+ 程序员面试经典问题 1、静态成员必须要在类外初始化,无法在构造函数内初始化。新标准的C+也允许在生命静态数据成员的是后直接加等于号进行初始化,但是大部分编译器不支持。所以最保险的办法就是在类定义的外面再写: int Foo:a = 0; 函数则很普通成员函数的声明以及实现没区别,唯一要注意的是,静态函数是没有this指针的,因此不能访问任何非静态的其他成员函数或成员变量,如果要访问需要传递this指针进去 1、 重载函数是函数的一种特殊情况,为方便使用,C+允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。 2、 拷贝构造函数的参数为什么是类的引用,而不是类的对象,传递对象的话会造成极度的负担,一个对象的大小难以确定,可能会非常大,如果像普通那样进行浅拷贝的话,可能会带来资源不足的问题,严重拖累程序的效率。按引用传递则传递了地址,同时在语法上却像传值一样方便。这样就不会有很大负担了 3、 常对象必须初始化,并且初始化后不能修改数据成员。 常成员函数不能更新对象的数据,也不能调用非const修饰的成员函数。常对象只能调用类的常成员函数。 实际上具体大概有下面两种情况需要使用友元函数: 运算符重载的某些场合需要使用友元。两个类要共享数据的时候。 1.2.1优点:能够提高效率,表达简单、清晰。 1.2.2缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友元函数。 2.1友元函数的参数: 因为友元函数没有this指针,则参数要有三种情况: 2.1.1 要访问非static成员时,需要对象做参数; 2.1.2 要访问static成员或全局变量时,则不需要对象做参数; 2.1.3 如果做参数的对象是全局对象,则不需要对象做参数; 2.2友元函数的位置 因为友元函数是类外的函数,所以它的声明可以放在类的私有段或公有段且没有区别。 2.3友元函数的调用 可以直接调用友元函数,不需要通过对象或指针 2.4友元函数的分类: 根据这个函数的来源不同,可以分为三种方法: 2.4.1普通函数友元函数 2.4.1.1 目的:使普通函数能够访问类的友元 4、 内联函数就是编译的时候直接把函数那段代码填到调用函数的地方,因为不用像普通函数调用那样去寻址,所以速度更快 5、 构造函数的特点: 1.构造函数的命名必须和类名完全相同。在java中普通函数可以和构造函数同名,但是必须带有返回值; 2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的; 3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的; 4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点; 5.构造函数有回滚的效果,构造函数抛出异常时,构造的是一个不完整对象,会回滚,将此不完整对象的成员释放(c+) 6.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。12.它可以重载; 7、 static变量是放在栈中,就是在程序的运行期都是存在的,函数中的STATIC变量是在编译时由编译器改名了的,所以在函数中是可以访问的,函数外是不可以访问的 8、 1、C语言函数的定义不能嵌套,函数的调用可以嵌套。 2、C语言中函数的定义都是相互平行、相互独立的,也就是说在函数定义时,函数体内不能包含另一个函数的定义,即函数不能嵌套定义,但可以 嵌套调用。嵌套函数,就是指在某些情况下,您可能需要将某函数作为另一函数的参数使用,这一函数就是嵌套函数。一个为大家所熟知的例子就是 qsort函数会将一个比较器cmp作为参数.在一个程序中, 主函数调用了sum函数,而在sum函数中又调用了mul函数。在一个函数被调用的过程中又调用另一个函数,这就是函数的 嵌套调用。如果是函数本身嵌套调用函数本身,那就是函数递归调用了。 虚基类一般是在多继承的时候用。例如 A水上交通工具 B陆地交通工具 C水陆两用坦克 A和B、C都有start方法,那么C的start方法就会有二义性,究竟继承自谁呢? 这个时候就要用虚拟继承了,这个时候AB是C的虚基类。 不能,因为子类继承父类的时候,先运行父类构造函数; 具体的说就是运行父类时就会先“调用”父类的构造函数,注意“调用”和继承不是一个含义,实质上是“自动运行”。 继承的含义其实是“扩展”,子类完全没必要扩展父类的构造函数,因为每次调子类的时候都会“自动运行”它父类的构造函数,如果真的需要子类构造函数特殊的形式,子类直接修改或重载自己的构造函数就好了。 1,构造函数和析构函数不能被继承。构造函数和析构函数是用来处理对象的创建和析构的,它们只知道对在它们的特殊层次的对象做什么。所以,在整个层次中的所有的构造函数和析构函数都必须被调用而不能被继承。 2,子类的构造函数会显示的调用父类的构造函数或隐式的调用父类的默认的构造函数进行父类部分的初始化。 3,析构函数也一样。它们都是每个类都有的东西,如果能被继承,那就没有办法初始化了。 运算符重载时要遵循以下规则: (1) 除了类属关系运算符"."、成员指针运算符".*"、作用域运算符":"、sizeof运算符和三目运算符"?:"以外,C+中的所有运算符都可以重载。 (2) 重载运算符限制在C+语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的运算符。 (3) 运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。 (4) 重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。 (5) 运算符重载不能改变该运算符用于内部类型对象的含义。它只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时。 (6) 运算符重载是针对新类型数据的实际需要对原有运算符进行的适当的改造,重载的功能应当与原有功能相类似,避免没有目的地使用重载运算符。 c+支持函数重载,c不支持函数重载,函数被c+编译后在库中的名字与c语言不同。 c+提供了c连接交换指定符号extern”c”解决名字匹配问题。 在c程序中,const的用法主要有定义常量、修饰函数参数、修饰函数返回值等三个用处。在c+程序中,它还可以修饰函数的定义体,定义类中某个成员函数为恒态函数,即不改变类中的数据成员。 const 的用途: 1、 可以定义const常量 2、 const可以修饰函数的参数和返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。 sizeof 和 strlen 的区别: char ss100 = “0123456789” sizeof(ss) 结果为100, strlen结果为10; int ss100 = “0123456789” sizeof(ss) 结果为400, strlen结果为错误,strlen的参数只能是char*,且必须是“0”结尾的。

    注意事项

    本文(C++ 程序员面试经典问题.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开