C++基础知识易错点总结(1)
1. 在C++中,不能被重载的运算符有:
- sizeof
- . 成员运算符
- .* 成员指针运算符
- :: 作用域运算符
- ?: 条件运算符
2. C++语言多态性:编译时多态和运行时多态:
- 编译时多态可通过函数重载和模板实现;
- 运行时多态可通过虚函数实现;
- 实现运行时多态机制称为动态绑定;
3. C++中,头文件引用问题:
- #include <> 编译器只搜索系统目录,不会搜索本地目录。比如你自己写一个头文件,你用#include <>会出错。
- #inlude " " 首先搜索本地目录,如果本地目录没有才会搜索系统目录;
- 可以把系统的文件 放到当前目录下 改成 "" 可以优先使用;
4. 设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为?
解析:此题考查运算符优先级和&&使用规则,首先=优先级低于判断< ,有m=0,&&左侧为false,则不执行右侧,因此n的值不变为2;
5. 重载函数是指同一个函数名可以对应多个函数的实现,编译器会根据参数个数、参数类型不同而自动调用相应的函数;注意函数返回值类型不能作为重载的判断条件。
6. 运算符重载规则:
- 友元函数重载运算符时,因为没有this指针指向对象,因此参数个数保持和原来一样,参数列表为1,说明是1元,为2说明是2元;若无参,说明重载出错;
- 成员函数重载时,参数列表为空,是一元,参数列表是1,为2元;
7. 循环语句问题:
- while(条件)为false时,循环体不执行;
- do while(),循环体至少执行一次;
- continue只能出现在for/while/do while循环内部,或嵌套在此类循环里的语句和块内部,不能在单独的switch中用continue;
- break用于终止离它最近的循环语句;
8. 构造函数问题:
- 无论是默认构造函数还是拷贝构造函数,均无返回值;
- 拷贝构造函数的参数可以使一个或多个,但左起第一个必须是类的引用对象;
- 若类定义中没有声明拷贝构造函数,则编译器会自动生成一个缺省的拷贝构造函数,但是不会是该类的保护成员;
- 通过拷贝函数可以将另一个对象作为对象的初值;
9. const与define:
- const常量有数据类型,而宏常量没有数据类型。编译器可以对const进行类型安全检查,但是对define只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误(边际效应);
- 有些集成化的调试工具可以对const进行调试而不能对define进行调试。
- 在C++程序中只使用const常量而不使用define常量,即const常量完全取代define常量。
10. 在类的const成员函数中,用mutable修饰成员变量后,就可以修改类的成员变量了~
11. 关于类型转换:
- dynamic_cast:继承体系安全向下转型或跨系转型;找出某对象占用内存的起始点;
- static_cast:同旧式C转型,如int到double,(显式类型转换);
- const_cast:去除对象常量性;
- reinterpret_cast:本质依赖于机器,为运算对象的位模式提供较低层次上的重新解释,不常用,较危险~
C++基础知识易错点总结(1)的更多相关文章
- js基础知识易错点(一)
最近替另一个项目招人,要求基础知识好,随便问了一些基础题,发现了一些易错的点,总结一下. 1.判断一个空数组 var arr = []; 1)JSON.stringify(arr) == " ...
- C++基础知识易错点总结(2)
1. 若一组待排数据有序,花费时间最多的是:快速排序,T(n)=O(n^2): 2. 有 1000 个无序的整数,希望使用最快的方式找出前 50 个最大的,最佳的选择是? 快速排序:在最理想的情况下, ...
- JavaGuide易错点总结
基础知识易错点 1. object.equals("str") 容易报空指针异常,应使用"str".equals(object); 还可以使用JDK7引入的工具 ...
- 细节!重点!易错点!--面试java基础篇(二)
今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断 ...
- 细节!重点!易错点!--面试java基础篇(一)
今天来给大家分享一下java的重点易错点部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.java中的main方法是静态方法,即方法中的代码是存储在静态存储区的. 2.任何静态代码块都会在ma ...
- python易错知识集合
本篇用于记录在写leetcode时遇到的python易错知识. 2019.8.29 1.Python range() 函数用法: range(start, stop[, step]) start: 计 ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- Java基础知识二次学习--第三章 面向对象
第三章 面向对象 时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...
- 【RL-TCPnet网络教程】第2章 嵌入式网络协议栈基础知识
第2章 嵌入式网络协议栈基础知识 本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议. 基础知识整理自百度百科,wiki百科等 ...
随机推荐
- Python语法一
前记,今天开始学习Python 参考 笨方法学习+Python(第三版) 因为有编程基础,所以入门不难,相比于以前学过的其它语言编程,Python当然也有它独特的语法格式. 1.安装Python 访问 ...
- All About Python
Part one: Learn the Basics Hello, World! print "Hello,World!" Variables and Types Python i ...
- Bash Shell的操作环境
1.路径与命令查找顺序 基本上,命令运行的顺序可以这样看: 1)以相对/绝对路径执行命令,例如“/bin/ls”或“./ls”; 2)由alias找到该命令来执行; 3)由bash内置的(builti ...
- Django中载入javascript、css的操作
url.py中的设置: 导入模块 from django.conf import settings (r'^js/(?P<path>.*)$','django.views.static. ...
- 学习C:打印输入中单词长度的水平方向直方图
#include <stdio.h>#define IN 1#define OUT 0#define MAXWL 16 main() { /*打印输入单词长度的水平直方图*/ int c, ...
- bootstrap制作搜索框及添加回车搜索事件
下面是开发中用bootstrap制作的一个搜索框,以及给搜索框添加回车搜索事件的一个小案例. bootstrap制作搜索框及添加回车搜索事件 下面是功能实现的代码: <!DOCTYPE html ...
- UVa 1354 天平难题 Mobile Computing
整个题考虑起来 最主要要计算的状态 是树的状态 于是要计算出所有可能挂坠可能组成的树的所有形态 tree 用于保存这些状态 考虑不要重复计算,有一个vis 数组 预处理可以先计算出一棵树的重量,简化计 ...
- 循序渐进Python3(十一) --3-- web之dom
DOM 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的 ...
- ssh config host
Host mygithub HostName github.com User git IdentityFile ~/.ssh/github/id_rsa IdentitiesOnly yes
- 调用JavaScript
当webdriver 遇到没法完成的操作时,笔者可以考虑借用JavaScript 来完成,比下下面的例子,通过JavaScript 来隐藏页面上的元素.除了完成webdriver 无法完成的操作,如果 ...