• C++ 基础知识复习(二)


    异常处理部分:

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

  • 相关阅读:
    区块链解读
    如何在ASP.NET Core项目启动时执行异步定时任务
    深入理解ASP.NET Core中的Program类和Startup类
    VS 2017 .Net Core Error : 项目文件不完整,缺少预期导入。
    dotnet不是内部或外部的命令,也不是可运行的程序或批处理文件
    win10系统卸载matlab时出现exeption calling main怎么解决?
    解决mui错误:Unable to preventDefault inside passive event listener due to target being treated as passive.
    类型"*.Properties.Resources" 没有名为"*"的属性
    C#生成唯一不重复订单号帮助类
    Day16.参数传递(token传递,接口关联等)
  • 原文地址:https://www.cnblogs.com/sthv/p/5792638.html
Copyright © 2020-2023  润新知