异常处理部分:

23. 在c++的异常处理中,除了提供异常的关键字语法支持以外,其标准库中支持异常处理而封装异常类也很好的为应用程序中异常处理判断使用提供直接的帮助。C++语言中针对异常处理提供了三个关键字,分别为try、throw与catch。C++应用程序中通过这三个关键字实现机制组合来实现异常的处理。try体中可以直接抛出异常,或者在try体中调用的函数体中间接的抛出。注意catch是接thorw出来的数据的,数据类型上要兼容。

预处理及内存管理部分:

24. C语言提供的预处理功能有哪些:
答:宏定义,文件包含和条件编译。

25. include的使用方式:
答:include 如果包含的文件名在尖括号内,则为标准头文件,会在预定义的位置集进行查找。位置集可有环境变量或命令行修改。引号中为自定义头文件,查找始于源文件所在路径,一层层找直到系统文件目录。

26. 如何申请以及释放空间:
答:int *p; p=new int; *p=100; delete p; 注意如果要对这一内存地址进行操作,需要使用*号。

27. 什么是虚函数和纯虚函数:
答:虚函数用来建立抽象模型,从而达到方便系统扩展的目的,纯虚函数是指标明不具体实现的虚函数,是一种特别的虚函数。虚函数必须是基类定义的非静态函数,可以是protected活着public的。在一个类中,虚函数后面加上=0;就声明了纯虚函数,含有纯虚函数的类就是抽象类,不能生成对象。

28. 用*定义指针,c++提供了一种特殊的指针类型void*,可以保存任何类型对象的地址,使用时需要强制类型转换为特定类型。

29. C++语言强制要求指向const对象的指针也是const的,但并不是指此指针不能指向别处,const指针可以指向其他的const对象。具体的区分方式为,const double * ptr,指的是ptr指向的double不能修改,而double * const ptr则是指此指针指向的地址不能修改,地址的值可以修改。注意const的位置。

30. 函数指针与指针函数的区别:
答:函数指针是一个指向函数的指针,指针函数是指返回值为指针的函数。

31. 什么是this指针:
答:在调用成员函数时,编译器会隐含地插入一个参数,这个参数就是this指针,指向当前对象本身,表示当前对象的地址。

32. 值传递与引用传递:
答:从名字就能看出来,值传递传递的是值的副本,而引用传递传递的是地址。

33. 指针和引用的区别:
答:指针是一个实体,引用是别名,引用时直接使用无需加*,引用只能在定义时被初始化一次,引用没有const,sizeof结果不同。

面向对象与类部分:

34. 面向对象的特征是什么:
答:面向对象三要素:封装,继承,多态。封装,将抽象得到的数据和行为相结合,形成类,使用者不必了解具体细节,通过外部接口和访问权限来使用类成员,增强安全性和简化编程。继承使一个类可以使用现有类的全部功能,使其可以直接使用另一个对象的属性和方法并加以扩展。多态允许将父对象设置成为和一个或多个字对象相等的技术,赋值后,父对象可以根据当前赋值给他的字对象的特性以不同的方式运行。多态使得能够利用同一基类的指针饮用不同类的对象,以及根据所引用对象的不同,以不同的方式执行操作。多态是在c++中是通过虚函数实现的。

35. 类和结构的区别:
答:类没实例化前不是对象,实例化的类存在堆中,结构存在栈中,结构的执行效率较高。结构没有析构函数,不能继承。C中的结构不能有方法,C++可以有。

36. 抽象类及其用途:
答:抽象类可以提供多个派生类共享基类的公共定义,可提供抽象方法,也可提供非抽象方法,不能实例化,必须通过继承由派生类实现其抽象方法,如果派生类没有实现其全部抽象方法,派生类也必须声明为抽象类,派生类用覆盖overriding来实现抽象方法。注意,非抽象类也可以有虚函数。

37. 成员变量的访问方式:
答:private,protected和public。

38. static静态成员:
答:静态成员可以独立访问,不需要创建实例,被类的所有对象所共享,包括派生类。类的静态方法只能访问类的静态成员。

39. 多态有动态多态,静态多态,函数多态和宏多态等。平时所指多态为动态多态,基于继承和虚函数实现。类的多态通过覆盖来实现,而函数的多态通过重载来实现。

40. static静态成员:
答:静态成员可以独立访问,不需要创建实例,被类的所有对象所共享,包括派生类。类的静态方法只能访问类的静态成员。

41. 虚函数的作用:
答:虚函数用来实现动态联编,当程序发现关键字virtual后,会自动进行动态联编处理,即在程序运行时选择合适的成员函数。

42. 构造函数与析构函数调用顺序:
答:全局对象的构造函数在main之前调用,析构函数在main之后,全局变量间的先后顺序以定义顺序为准。局部变量在程序执行到定义语句处调用。静态局部变量同样在程序第一次执行到定义语句时调用。构造函数的调用顺序为:调用基类的构造函数->调用成员对象的构造函数->调用自身的构造函数。构造函数的调用次序完全不受构造函数初始化列表的表达式中的次序影响,与基类的声明次数和成员对象在函数中的声明次序有关

C++ 基础知识复习(二)的更多相关文章

  1. Java JDBC的基础知识(二)

    在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...

  2. LeetCode刷题191130 --基础知识篇 二叉搜索树

    休息了两天,状态恢复了一下,补充点基础知识. 二叉搜索树 搜索树数据结构支持许多动态集合操作,包括Search,minimum,maximum,predecessor(前驱),successor(后继 ...

  3. Ajax基础知识(二)

    接上一篇  Ajax基础知识(一) 在上一篇博客里,抛弃了VS中新建aspx页面,拖个button写上C#代码的方式.使用ajax的方式,异步向服务器请求数据.我们让服务器只简单的返回一个" ...

  4. HTTP基础知识(二)

    接着上一章的内容:HTTP基础知识(一)   二.简单的HTTP协议 1.客户端:请求访问文本或图像等资源的一端称为客户端: 服务器端:提供资源响应的一端   2.以百度为例子 这是请求头: 在起始行 ...

  5. JavaScript进阶【三】JavaScript面向对象的基础知识复习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ZYNQ笔记(0):C语言基础知识复习

    ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...

  7. XML的相关基础知识分享(二)

    前面我们讲了一下XML相关的基础知识(一),下面我们在加深一下,看一下XML高级方面. 一.命名空间 1.命名冲突 XML命名空间提供避免元素冲突的方法. 命名冲突:在XML中,元素名称是由开发者定义 ...

  8. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

  9. Android中的一些基础知识(二)

    这几天在回顾Android的基础知识,就把一些常见的知识点整理一下,以后忘了也可以翻出来看一看. 简单介绍一下Activity的生命周期 在API文档中对生命周期回调的函数描述的很详细,这里我只是翻译 ...

  10. spring 基础知识复习

    spring是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式. 组成spring框架的每个模块(或组件)都可单独存在 ...

随机推荐

  1. 【jQuery api】isFunction()

    <!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. 使用腾讯开发平台获取QQ用户数据资料

    <今天是七夕:祝大家七夕嗨皮,前可么么哒,后可啪啪啪> Tips:本篇博客将教你如何使用腾讯开发平台获取QQ用户资料 ----------------------------------- ...

  3. ubuntu使用doxygen

    1.安装 sudo apt-get install doxygen按tab键 doxygen        doxygen-dbg    doxygen-doc    doxygen-gui    d ...

  4. HTML5学习总结-番外05 响应式布局

    1. 响应式布局 响应式布局是2015年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的.其目的是为用户提欧共更加 ...

  5. bandicam如何录制视频

    我们一般都很熟悉这类软件:屏幕录制专家和kk录制等,这些都是国内比较优秀的作品.不过exe的封装格式以及录制的清晰度让人很纠结.所以这里要为大家分享的是一款韩国人写录制软件Bandicam.Bandi ...

  6. mysql索引失效

    在做项目的过程中,难免会遇到明明给mysql建立了索引,可是查询还是很缓慢的情况出现,下面我们来具体分析下这种情况出现的原因及解决方法   索引并不是时时都会生效的,比如以下几种情况,将导致索引失效: ...

  7. JS 加载html 在IE7 IE8下 可调试

    实际背景 就是都是HTML 公共头部底部  然后中间部分加载不同的HTML文件 有点跟模板引擎一样 jQuery 有个load函数 加载html文件的路径 获取html内容 到中间部分 正常下是不能用 ...

  8. 数据存储_SQLite常用的函数

    一.简单说明 1.打开数据库 int sqlite3_open( const char *filename,   // 数据库的文件路径 sqlite3 **ppDb            // 数据 ...

  9. 使用safari对webview进行调试

    在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到mac自带的浏览器Safari.所以,本文将讲解如何使用 ...

  10. 6Hibernate进阶----青软S2SH(笔记)

    关于关联关系的配置,用注解配置如下(这里引用的jar包是javax.persistence) // @ManyToOne(fetch=FetchType.LAZY) @ManyToOne(fetch= ...