异常处理部分:

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. cosbench read异常解决办法。 Unable to verify integrity of data download. Client calculated content hash didn't match hash calculated by Amazon S3. The data may be corrupt.

    问题:cosbench read测试failed 报错如下 Cosbench v0.4.2.c4 against Ceph (Hammer) / radosgw / HAproxy's HTTP en ...

  2. [转]EL表达式和JSTL表达式实例

    /* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...

  3. 解决:Win 10安装软件时提示:文件系统错误 (-1073740940)

    1.win+R输入 gpedit.msc 2.左边计算机配置 windows设置——安全设置——本地策略——安全选项 3.在安全选项右边选择 用户账户控制:管理员批准模式中管理员的提升权限提示的行为, ...

  4. ARM学习 之 如何在向内核写入系统调用

    本文主要介绍两个例子:1-系统调用打印“hello kernel”  2-驱动开发板的蜂鸣器 使用的是友善之臂(Friendly ARM)的开发板,三星2440 =================== ...

  5. cocos2d-x打飞机实例总结(一):程序入口分析和AppDelegate,Application,ApplicationProtocol三个类的分析

    首先,是个敲代码的,基本上都知道程序的入口是main函数,显然,就算在cocos2d-x框架中也一样 我们看看main函数做了什么 #include "main.h" #inclu ...

  6. java高新技术-操作javaBean

    1. 对javaBean的简单内省操作 public class IntroSpectorTest { public static void main(String[] args) throws Ex ...

  7. 【BZOJ-3507】通配符匹配 DP + Hash

    3507: [Cqoi2014]通配符匹配 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 372  Solved: 156[Submit][Statu ...

  8. Map工具系列-03-代码生成BySQl工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  9. win10如何100%提升网络速度

    1.Win+R运行,输入gpedit.msc 2.依次打开"计算机配置"-"管理模板"-"网络"-"QoS数据包计划程序" ...

  10. [Unity] Shader - CG语言 流程控制语句

    CG语言中: 不支持 switch 语句(可以写,但不能很好的执行.) 循环语句中, 循环次数不能大于 1024 ,否则会报错. If...ELSE 条件判断语句: if (true) { } els ...