图像处理 面试准备

来源:互联网 发布:股票数据接口插件 编辑:程序博客网 时间:2024/06/06 03:05

1、矩形检测和字符识别
2、读出图片中仪表的读数

3、C/C++内存分配方式

a: 静态存储区:内存在编译的时候就已经分配好,直到程序结束都存在,例如全局变量,static变量

b:栈区:由编译器自动分配释放,存放函数的参数值,局部变量的值等,是一种向低地址扩展的数据结构,内存的分配是连续的。函数执行完成后自动释放。栈的分配效率很高(相比于堆分配),但是容量有限,VC6下只有1M。

c:堆区:由程序员分配释放,如果程序员没有释放掉,程序结束后,由OS回收,是一种向高地址扩展的数据结构,内存的分配的是不连续的。动态内存分配,C:malloc/free   C++:new/delete.堆的效率要比栈低得多,但是容量比较大,可以达到4G。

如果比较栈和堆的区别,可以从以下几个方式:申请释放方式不同、申请空间大小不同、申请效率的不同、以及碎片问题。

经典例子:

//main.cppint a = 0; 全局初始化区char *p1; 全局未初始化区main(){int b; 栈char s[] = "abc"; 栈char *p2; 栈char *p3 = "123456"; 123456\0在常量区,p3在栈上。static int c =0; 全局(静态)初始化区p1 = (char *)malloc(10);p2 = (char *)malloc(20);分配得来得10和20字节的区域就在堆区。strcpy(p1, "123456"); 123456\0放在常量区,编译器可能会将它与p3所指向的"123456"优化成一个地方。}

参考:http://blog.csdn.net/shanchangyi/article/details/51854795

4、面向过程编程和面向对象编程

a、面向过程是一过程为中心的的编程思想,分析出解决问题的需要的步骤,然后一步步实现,是流程化的。通常数据和对数据的操作是分离的。面向对象就是把问题抽象成具有行为(函数)和属性(数据)的一个个对象,然后分别设计这些对象,通常是数据和对数据的操作是绑定在一起的。

b、面向对象拥有三大特征:封装、继承、多态面向对象的代码更加支持重用,注重功能的复用。

封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。

继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。

多态:接口的多种不同的实现方式即为多态。同一操作作用于不同的对象,产生不同的执行结果。在运行时,通过指向基类的指针或引用来调用派生类中的虚函数来实现多态。

封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的类。它们的目的都是为了—代码重用。

而多态则是为了实现另一个目的—接口重用。


5、走格子,比如(0,0)到(5,7)
4、字符串数字转换为整数 "12345" to 12345
5、虚函数的作用以及实现机制

原创粉丝点击