C++看人家的代码
2016-03-08 13:18
369 查看
看码经验:
1. 看人家的工程代码,比较庞大,处理的情况比较复杂,那么,就先从大的看,再看小的。
即,先宏观上了解它的结构,现在核心计算或循环部分,看的过程中,需要啥,再去找对于的细节。
还有就是如果看细节的话,一定要不存疑,因为你不是能存的了疑的人。
3.看人家代码的时候,觉得最纠结的地方是,不知道设那个变量干嘛,这个变量有什么用,所以看代码的时候搞清楚变量设出来是干嘛的很重要;
所以,如果要怎加代码可读性,备注变量的意义,也就很重要了。
for循环中i++和++i,
定位的话,两者的效果是一样的,即循环中,两者的情况是一样的。
至于效率,有一个意见:
++的意思是先使用i的值,再给i+1.因为要先使用i的值,所以i++其实是新建一个临时变量_tmp_i;
然后执行_tmp_i = i;然后再使用i的值,然后再对i赋值:i=_tmp_i+1。所以i++的效率没有++i高。
++i的意思是先执行i = i +1;然后再使用i的值。
5.C++ new 类指针
类的对象(只调用构造函数):用的是内存栈,是个局部的临时变量,会自动被释放
类的指针(new):用的是内存堆,是个永久变量,除非你释放它,所以必须调用delete,否则容易造成内存溢出。
但是栈容易溢出,内存堆不容易吧,所以人家用new的多。
指向基类对象的指针不仅可以包含基类对象的地址,还可以包含派生类对象的地址。
对于一个类的对象和这个类的指针(用new运算符分配内存)在应用时有何区别
1.类和对象是两回事,对象是类的实例;
2.对象是在栈中分配的,使用new生成的对象是在堆中分配的;
3.要发挥虚函数的强大作用,必须使用指针来访问对象.
注意名字的类型.
一个是Student
一个是Student*
1. 看人家的工程代码,比较庞大,处理的情况比较复杂,那么,就先从大的看,再看小的。
即,先宏观上了解它的结构,现在核心计算或循环部分,看的过程中,需要啥,再去找对于的细节。
还有就是如果看细节的话,一定要不存疑,因为你不是能存的了疑的人。
3.看人家代码的时候,觉得最纠结的地方是,不知道设那个变量干嘛,这个变量有什么用,所以看代码的时候搞清楚变量设出来是干嘛的很重要;
所以,如果要怎加代码可读性,备注变量的意义,也就很重要了。
for循环中i++和++i,
定位的话,两者的效果是一样的,即循环中,两者的情况是一样的。
至于效率,有一个意见:
++的意思是先使用i的值,再给i+1.因为要先使用i的值,所以i++其实是新建一个临时变量_tmp_i;
然后执行_tmp_i = i;然后再使用i的值,然后再对i赋值:i=_tmp_i+1。所以i++的效率没有++i高。
++i的意思是先执行i = i +1;然后再使用i的值。
5.C++ new 类指针
类的对象(只调用构造函数):用的是内存栈,是个局部的临时变量,会自动被释放
类的指针(new):用的是内存堆,是个永久变量,除非你释放它,所以必须调用delete,否则容易造成内存溢出。
但是栈容易溢出,内存堆不容易吧,所以人家用new的多。
指向基类对象的指针不仅可以包含基类对象的地址,还可以包含派生类对象的地址。
对于一个类的对象和这个类的指针(用new运算符分配内存)在应用时有何区别
1.类和对象是两回事,对象是类的实例;
2.对象是在栈中分配的,使用new生成的对象是在堆中分配的;
3.要发挥虚函数的强大作用,必须使用指针来访问对象.
注意名字的类型.
一个是Student
一个是Student*
相关文章推荐
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- 基于C++实现kinect+opencv 获取深度及彩色数据
- OpenCV 2.4.3 C++ 平滑处理分析
- Python中使用OpenCV库来进行简单的气象学遥感影像计算
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- Python环境搭建之OpenCV的步骤方法
- Python实现OpenCV的安装与使用示例
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程
- opencv-python学习一--人脸检测
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- OpenCV配置,从来没有这么简单!
- ubuntu下opencv和qt的安装配置
- OpenCV学习笔记(二十五)——OpenCV图形界面设计Qt+VS2008
- 分享一些OpenCV实现立体视觉的经验
- 关于OpenCv图像变换与基本图形检测
- "应用程序正常初始化失败"-0xc0150002 解决办法
- OpenCV->HSV色彩空间