Loading

面向对象2017课程复习

  研究生选修课程,根据老师画的重点总结一下,希望能够温故而知新。

重点内容:

 

PPT内容提取总结

1,c++程序一般生成过程:  编辑(.cpp,.c,.hpp,.h文件)-----编译(生成obj文件)---链接(将obj链接生成可执行exe文件)---执行调试

2,c++程序结构:注释,输入输出,函数,变量(对象),符号常量,表达式,语句

3,类型定义关键字typydef ----用来为复杂的声明定义简单的别名:例:typederf int size;就可以使用size代替int使用

4,string是抽象数据类型(个人mark!)

5,向量vector是一个模板类,重点理解!

   vector中所有对象的类型都相同

  每个对象都有一个索引  

  vector<int> iv ; vector<float>fv;//括号里是模板参数

  初始化:   vector<T> v2(v1);//拷贝构造

       vector<T> v2 = v1;//赋值初始化

       vector<T> v(n, value);//n个重复值构造    vector<int> chess(10,1);

       vector<T> v{a,b,c,d....};//列举具体构造值  

       vector<T>v  = {a,b,c....};

  主要操作函数:

        empty();//判断是否为空

        push_back();//向集合中添加元素

        size();//返回s的字符个数

        V[n]// 向量中,第n个对象,下标从零开始

  迭代器运算:  读写迭代器(iterator) 只读迭代器(const_iterator)

  跟指针类似,直接看下面使用实例

 

6,运算符优先级及短路求值策略

   例如 expr1 &&expr2   如果第一个表达式为假,则第二个表达式可能未执行,注意是否会影响运算结果

7.成员访问运算符,对象用点(.)指针用箭头(->)

8,数据类型强制转换(显示、隐式) 

  在数据进行运算之前,较低的数据类型,向较高的数据类型进行转换。

 ****自动转换类型:运算式中存在float类型时,无条件转换为double型,即4字节浮点数转化为8字节浮点数。                                                                                                    

精度丢失问题,int i; float f = 3.5 ; i = f;

9,枚举类型enum  

  9.1 其中 无类型名变量的定义只能进行一次,不可重新定义

  9.2 可用于计算,使用强制类型转换,例:

  enum weekday {sun,mon,tue,wed,fri,sat}num1.num2;

  num1=(enum weekday)(sun+2);   //num1的结果为tue,(sum+2)被强制转换

  num2 =(enum weekday)7 ;     //合法,将整数7强制转换为枚举类型后赋值。然而weekday中sun对应的值为0,以此类推,所以num2=?  答案是7,虽然语法没有错误但是由于在enum表里找不到对应值,所以为原值

10,const关键字(非重点,仅做理解)

  const关键字用来修饰常量,用来修饰一定不会改变的数据。

  const还可以修饰函数的形参,防止由于意外而改动指针。这里要提一下形参的引用传递值传递 ,值传递优点是不会改变原始数据,但是会需要额外的内存空间存储其备份。这里可以使用引用传递,即传递指针,

然后使用const修饰指针。这样既不会需要额外空间(对于占用大的对象重要),又可以保证,函数内部不会修改原始数据,保证了数据安全。

  const修饰函数的返回值,那么函数的返回值需要用const修饰的变量接受,不能被修改。

如果这里讲的不清楚的话可以参考该链接:http://blog.csdn.net/zcf1002797280/article/details/7816977

11,window程序启动过程

         

12,串行化:将对象保存到磁盘上或从磁盘上恢复的过程

13,inline关键字,可以提高函数执行的效率,是以代码复制为代价。

 14,运算符重载:主要记住定义方式,注意阅读代码题中,各种符号的重定义,可能影响输出结果

类的成员函数定义:

类的友元函数定义:

友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。上述函数非complex的成员函数,所以输入形参为两个对象引用。

 15,虚函数与动态绑定,纯虚函数与抽象类

  简单来说,动态绑定指的就是继承后,对父类中函数重载的方式,因为c++中,子类是不能随便重写父类的函数,除非使用virtual修饰的

  纯虚函数表示一个声明,含有纯虚函数的类就是抽象类,不能实例化。他们存在的意义是规定了一种规范,其子类要照着这种规范定义,使用函数。

注意!!! 关于子类实例化的对象,强制转换为父类对象,则会调用父类函数(重写无效)。然而将子类对象指针强行转换为父类指针,则可以指向子类函数(动态绑定)题目参考扫描版第五页

  我押这道题一定会考

往届题目习题内容知识点:

 1,对话框有两种形式:模态,非模态

  模态:指获得焦点之后,除非关闭,焦点或者输入光标一直停留在该对话框。

  非模态:不会强制焦点,可以在不同的窗口间来回切换

  对话框的创建过程

2,线程可以分为:用户界面线程,工作者线程 

3,重载是指同一个函数名,但是 参数个数,参数类型 不同的一类函数

4,在类继承时,可以使用多个类作为基类。

  在c++上是正确的,因为其可以多继承。然而如java这种面向对象语言并不支持多继承,而是通过接口实现多继承。

5,程序编译时产生错误是因为程序中的语法错误。(错)

  还可能存在变量重复定义,上下文关系错误

6,列举单文档程序的主要框架类:CApp类,Cdoc类,Cview类,CmainFrame类

7,c++程序的编译链接过程中,对函数的调用处理分为:静态绑定,动态绑定

8,MFC中,视图类是窗口类的派生类

  MFC中三种常用的GDI对象:CPen,CBrush,CBitmap

9,面向对象三个特点:继承,多态,封装(以后面试也会被问的,理解的越深刻越好),各自定义,举例用代码说明等

10,线程同步的方法:原子访问,互锁函数,关键代码

11,使用设备上下文对象的两种方法??selectStockObject(),selectObject()

12,winmain函数的主要功能?

答:注册窗口类,创建主窗口,显示主窗口,进入消息循环,遇到WM_CLOSE消息退出

13,对话框的创建过程?

    1,添加对话框资源,

    2,为新加入的对话框资源添加类

    3,声明对话框类的对象,并添加该类的头文件

    4,调用该类的DoModel函数来激活模式对话框,或者先调用Create函数,然后调用ShowWindow函数来激活非模态对话框

 14,坐标映射方式:设备坐标,逻辑坐标,映射方式

 --------------------------------------------------------------------

老师不按套路出牌,开放题不要浪费太多时间,读程序写结果的题都是恶心的加减法计算,没时间可以后写。

最后面的编程设计大题,和选择大题基本就是送分题,mvc考察内容很少,选重点复习就行。

 

   

 

   

 

posted @ 2017-12-15 14:58  CodeMonkey404  阅读(249)  评论(1编辑  收藏  举报