2010年相关概念题

"面向过程"和"面向对象"编程思想

面向过程

解释一:

将解决问题的重点放在如何实现过程的细节方面,把数据和对数据进行操作的函数分离,以数据结构为核心,围绕着功能的实现或操作流程来设计程序,安全性较低、扩展升级麻烦,当问题的规模变大时,编程将很复杂。

解释二:

分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候有一个一个地调用。

面向对象

解释一:

将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性和行为,形成类。通过继承与多态可以很方便地实现代码重用,大大缩短了软件开发周期,并使软件风格统一。

解释二:

把相关数据和方法组织为一个整体来看待,从更高的层次进行抽象,更能够贴近事物的自然运行模式。

ADT是什么?你对"数据抽象"和"信息隐藏"的认识

ADT

ADT全称是Abstract Data Type,即抽象数据类型,是具有类似行为的特性类别的数据结构的数据模型,是基于已有类型而组合生成的复合数据类型,类就是抽象数据类型的一种描述形式。

数据抽象

指定义数据成员和函数成员的能力,从实际问题中抽象出所关心的共同特征,忽略非本质的细节,把这些特性用各种概念精确地加以描述组成某种模型。以数据为中心,把数据及在数据上的操作作为一个整体来进行描述。

信息隐藏

通过封装,实现信息隐藏,将类外部的接口放在类的公有部分,数据放在类的私有部分,防止用户在类外直接访问数据,并且屏蔽了类的实现细节。

const和static的作用

const关键字

  1. 用于定义常量,保护被修饰的量,防止意外的修改,增强程序的健壮性。
  2. 声明类成员函数时函数为常成员函数,常成员函数不能更新目的对象的数据成员,也不能针对目的对象调用该类中没有用const修饰的成员函数。

static关键字

  1. 用于声明静态局部变量,静态变量在运行过程中只初始化一次,其中的数据存放在全局数据区,不会因为函数退出而释放空间。
  2. 声明类的静态数据成员,其具有静态生存期,整个类只有一个变量拷贝,供类的所有对象共享。
  3. 声明类的静态函数成员,静态函数成员可以通过类名或对象名来调用,由同一个类的所有对象共享,可以直接访问该类的静态数据成员和函数成员。

友元关系的利弊

利:

友元可以是一个函数也可以是一个类,提供了不同类的成员函数之间、类的成员函数与普通函数之间的数据共享,通过友元关系,普通函数或者另一个类中的成员函数可以访问当前类中的私有成员和保护成员,能够减少通过函数接口调用的开支,提高程序运行效率,实现信息共享。

弊:

友元关系会破坏类的封装性和隐藏性,使其内部的数据成员暴露出来,加大维护的难度。

C++多态的实现

多态是指同样的消息被不同类型的对象接收时导致不同的行为。从实现的角度可以分为编译时多态和运行时多态。前者是在编译过程中确定同名操作的具体操作对象,主要是通过所声明的类型匹配相应操作,例如函数的重载,后者则是在程序运行过程中才动态地确定操作所针对的具体对象,例如虚函数,其主要是通过虚表实现。

STL是什么?其组成部分和核心作用是什么

STL全称Standard Template Library,是C++的标准模板库。

组成部分

主要由容器、迭代器和算法三部分组成。其中容器又分为顺序容器和关联容器;迭代器分为输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器;算法分为不可变序列算法、可变序列算法、排序和搜索算法、数值算法。

核心作用

使开发者能够有效地利用已有的成果,将经典的、优秀的算法标准化、模块化,从而提高软件的生产效率。

posted @ 2020-03-06 22:30  southernEast  阅读(352)  评论(0)    收藏  举报