图像处理 面试准备

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

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

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

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

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

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

经典例子:

//main.cpp
int 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、虚函数的作用以及实现机制

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值