C++ 程序员面试经典问题.docx
《C++ 程序员面试经典问题.docx》由会员分享,可在线阅读,更多相关《C++ 程序员面试经典问题.docx(6页珍藏版)》请在三一办公上搜索。
1、C+ 程序员面试经典问题C+ 程序员面试经典问题 1、静态成员必须要在类外初始化,无法在构造函数内初始化。新标准的C+也允许在生命静态数据成员的是后直接加等于号进行初始化,但是大部分编译器不支持。所以最保险的办法就是在类定义的外面再写: int Foo:a = 0; 函数则很普通成员函数的声明以及实现没区别,唯一要注意的是,静态函数是没有this指针的,因此不能访问任何非静态的其他成员函数或成员变量,如果要访问需要传递this指针进去 1、 重载函数是函数的一种特殊情况,为方便使用,C+允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数必须不同,也就是说用同一个运算符完成不
2、同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。 2、 拷贝构造函数的参数为什么是类的引用,而不是类的对象,传递对象的话会造成极度的负担,一个对象的大小难以确定,可能会非常大,如果像普通那样进行浅拷贝的话,可能会带来资源不足的问题,严重拖累程序的效率。按引用传递则传递了地址,同时在语法上却像传值一样方便。这样就不会有很大负担了 3、 常对象必须初始化,并且初始化后不能修改数据成员。 常成员函数不能更新对象的数据,也不能调用非const修饰的成员函数。常对象只能调用类的常成员函数。 实际上具体大概有下面两种情况需要使用友元函数: 运算符重载的某些场合需要使用
3、友元。两个类要共享数据的时候。 1.2.1优点:能够提高效率,表达简单、清晰。 1.2.2缺点:友元函数破环了封装机制,尽量不使用成员函数,除非不得已的情况下才使用友元函数。 2.1友元函数的参数: 因为友元函数没有this指针,则参数要有三种情况: 2.1.1 要访问非static成员时,需要对象做参数; 2.1.2 要访问static成员或全局变量时,则不需要对象做参数; 2.1.3 如果做参数的对象是全局对象,则不需要对象做参数; 2.2友元函数的位置 因为友元函数是类外的函数,所以它的声明可以放在类的私有段或公有段且没有区别。 2.3友元函数的调用 可以直接调用友元函数,不需要通过对象
4、或指针 2.4友元函数的分类: 根据这个函数的来源不同,可以分为三种方法: 2.4.1普通函数友元函数 2.4.1.1 目的:使普通函数能够访问类的友元 4、 内联函数就是编译的时候直接把函数那段代码填到调用函数的地方,因为不用像普通函数调用那样去寻址,所以速度更快 5、 构造函数的特点: 1.构造函数的命名必须和类名完全相同。在java中普通函数可以和构造函数同名,但是必须带有返回值; 2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方
5、法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的; 3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的; 4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点; 5.构造函数有回滚的效果,构造函数抛出异常时,构造的是一个不完整对象,会回滚,将此不完整对象的成员释放(c+) 6.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序员面试经典问题 程序员 面试 经典 问题
链接地址:https://www.31ppt.com/p-3153672.html