最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C++ 面试题精选

来源:动视网 责编:小OO 时间:2025-10-02 15:41:55
文档

C++ 面试题精选

C++面试试题汇总――柯贤富管理软件需求分析篇1.STL类模板标准库中容器和算法这部分一般称为标准模板库2.为什么定义虚的析构函数?避免内存问题,当你可能通过基类指针删除派生类对象时。必须保证基类析构函数为虚函数。3.项目管理怎么进行?制定软件项目计划;软件项目跟踪及监控。软件项目计划(SoftwareProjectPlanning)的目的是为了完成软件工程和管理软件项目所制定的计划,其内容包括估计待完成的工作,建立必要的约定和完成工作的计划。软件项目跟踪和控制(SoftwareProject
推荐度:
导读C++面试试题汇总――柯贤富管理软件需求分析篇1.STL类模板标准库中容器和算法这部分一般称为标准模板库2.为什么定义虚的析构函数?避免内存问题,当你可能通过基类指针删除派生类对象时。必须保证基类析构函数为虚函数。3.项目管理怎么进行?制定软件项目计划;软件项目跟踪及监控。软件项目计划(SoftwareProjectPlanning)的目的是为了完成软件工程和管理软件项目所制定的计划,其内容包括估计待完成的工作,建立必要的约定和完成工作的计划。软件项目跟踪和控制(SoftwareProject
C++面试试题汇总

                               ――柯贤富

管理软件需求分析篇

1.STL类模板

标准库中容器和算法这部分一般称为标准模板库

2.为什么定义虚的析构函数?

避免内存问题,当你可能通过基类指针删除派生类对象时。必须保证基类析构函数为虚函数。

 

3.项目管理怎么进行?

制定软件项目计划;

软件项目跟踪及监控。

软件项目计划(Software Project Planning)的目的是为了完成软件工程和管理软件项目所制定的计划,其内容包括估计待完成的工作,建立必要的约定和完成工作的计划。

软件项目跟踪和控制(Software Project Tracking and Oversighting)的目的是对实际进展建立足够的可视性,使管理着能够在软件项目的执行明显偏离软件计划时采取有效措施。其内容包括将实际的完成情况及结果和已文档化的估计、约定和计划进行对照,并且基于实际的完成情况和结果调整这些计划

4.单元测试如何进行?

单元测试主要编写驱动函数和桩函数,测试的目标是完成语句覆盖和路径覆盖。驱动函数用于调用被测函数,传递测试参数给被测函数。桩函数用于模拟被测函数调用的底层函数,需要对被测函数传来的各种可能参数进行正确的响应。

5.VSS的三个核心操作是什么?

Check in、check out、get latest version。

6.USECASE图画到哪一级?

一般要提供用例图、行为图和交互图及各角色定义。

7.在评审过程中应该做哪些工作?

以文档评审为例

文档评审电子流基本流程:

文档负责人创建文档评审电子流,指定评审专家和评审负责人->QA经理确认通过,通知文档作者->文档作者提交文档->评审专家提出评审意见->文档作者修改文档再次提交评审->评审专家会签通过(可能需要召开评审会议)->秘书进行文档归档

8.提交配置管理前做哪些工作?

已经得到QA及配置管理委员会的确认。如果提交的是源代码,确认包括需求、详细设计等一系列文档都已做了相应的修改以及确认。

9.概要设计文档如果到编码时发现问题怎么处理?

先提交问题报告单,经过软件经理审核,然后确认修改设计方案,修改代码,测试通过后,提交到配置库,同时更新相关的概要设计文档和详细设计文档。

10.工作计划怎么制定?

根据项目总体计划落实到每个具体人员身上,按照月度和周来制度工作计划。

11.Rose的应用情况

Rose作为一种建模语言工具可以应用于软件的需求分析、概要设计、详细设计和测试阶段。

12.软件开发模式包括哪些?

公司的主要开发模式包括面向对象、面向过程的开发模式,无论哪种方式都体现模块组装的思想。

13.设计的主要目标是什么?

逐步消化、细化需求,用程序的逻辑来表达文字性的描述。

14.设计包含哪些方面?

概要设计、详细设计、接口设计。

15.测试在设计阶段有没有活动要做?

在设计阶段要确定集成测试计划和单元测试计划。

16.合作性质项目和传统项目方式有什么区别?

传统项目主要根据公司自己的开发流程进行项目管理,合作性项目则需要接纳,有时甚至是按照合作方的开发模式进行项目管理,这主要由项目性质和项目需求决定的。

17.在项目启动时,如何制定项目计划?

如果是有规定交付日期的项目,就必须根据交付日期限定、项目需求、项目组成员的素质(体现在代码生产率)来确定项目计划。在项目计划的基础上可以作出月、周计划,计划执行时根据实际情况在不影响开发进度的前提下调整计划。

18.项目管理计划分为哪些类别?

粗的方面包括项目开发计划、质量计划、配置计划、测试计划。

19.计划的制定过程中,需要由哪些人参与?

项目经理、开发经理、质量经理和配置经理均要参与项目计划的制定。

20.月度计划由哪些人参与?主要过程是什么?什么时候启动月度计划,如何确定?

月度计划由项目经理、各小组负责人、质量经理、配置经理参与,主要是根据上月工作完成情况和项目总体计划来确定本月度计划。一般是在工作月的最后3天启动,目的是给大家一个熟悉和工作安排的考虑。

21.怎样对计划进行跟踪?

每周对计划完成情况进行审核和评估,及时进行反馈和调整。

22.CASE管理在开发过程中的应用情况

23.JAVA的缺陷有哪些?

代码运行效率低。

24.CMMⅡ的主要KPA包括哪些?

包括6个关键过程域:软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪和监督、软件项目策划、需求管理。

25.需求管理方面需要QA做哪些工作?

需求管理(Requirement Management)的目的是在客户和将处理客户需求的软件项目之间建立对客户需求的共同理解。

    需求管理包括和客户一起建立和维护有关软件项目需求的协议,该协议称作“分配给软件的系统需求”,“客户”可解释为系统工程组、销售组、另一个内部组织,或者一个外部客户,“协议”既包括技术需求,又包括非技术需求(如交付日期),该协议形成估计,策划和跟踪整个软件生命周期内项目活动的基础。

    将系统需求分配给软件、硬件和其它系统组成部分(如人力等)的工作可能由软件工程组以外的组(如系统工程组)完成,软件工程组可能对此分配无法直接控制,在项目约束范围内,软件工程可采取适当的步骤以确保软件的需求已有相对应的定位,并且实现文档化并处于受控状态

26.需求跟踪方面做哪些工作?可以跟踪到哪一步?谁来负责?

27.在需求跟踪中做了哪些工作?

(1)定义对其他需求的连接链

     (2)定义对其他系统元素的连接链,这些元素可能包括软件计划、产品和活动、需求和设计文档、代码。

    目的是它们与软件需求保持一致。

28.为需求制定CheckList的目的,如何制定?如何使用CheckList?

根据需求分析的功能模块确定里程碑,在每个里程碑要设定检查点和检查方法,目的是在开发过程中及时发现和解决问题,而不是将问题遗留到后期的测试阶段。可由QA执行。

29.SEPG有多少人员?主要负责哪些方面的工作?

软件工程过程小组包括项目经理和技术人员,主要负责推进组织所采用的软件过程的定义、组织和改进工作。

30.在实施QA方面遇到过哪些问题?

31.如何理解度量机制?

软件度量(Software Measurement)通过各种不同的量度(metric)对软件生命周期中的各个元素进行度量(Measure),它能够为项目管理者提供有关项目的各种重要信息,同时也是进行大多评估活动的基础

32.需求度量包括哪些?

度量优秀的需求的标准为:(1)完整性(2)正确性(3)可行性(4)必要性(5)划分优先级(6)无二义性(7)可验证性

33.实施QA工作,核心工作还应该包括哪些?

34.质量特性有哪些?

用户关注的:有效性、高效性、灵活性、完整性、互操作性、可靠性、健壮性、可用性。

开发者关注的:可维护性、可移植性、可重用性、可测试性。

35.评审过程中,QA做哪些工作?审核包括哪些内容?

QA确保软件过程的步骤和标准得到遵守。审核的对象包括文档、代码等。

36.其他角色在评审审核中的作用?

其他角色包括评审负责人,一般是项目经理,负责使评审活动正常有序的进行,确保评审中发现的问题得到解决或者指定解决人。

包括评审专家,负责对评审对象提出问题,寻求解决的方法。

还包括讲解人和作者,他们要确保评审专家对评审材料的理解,并对评审专家提出的问题进行解答。

最后还应该由会议记录员,负责对会议的议题和提出的问题及解决方法进行记录。

37.评审作者是否需要参加评审?

评审作者应该参加评审,它有回答评审专家提出的问题的责任,并且负责解决这些问题。

38.评审过程如何进行?

参见前面的文档评审流程。

39.评审前后的工作包括哪些?

评审准备工作包括评审作者准备充分评审材料,确保评审专家理解评审材料,此外还包括确定讲解人、评审专家、填写电子流程申请召开评审会议等。

评审完后,评审作者还要对评审专家提出的问题进行解决,如果所有问题都得到解决,评审专家和评审负责人会签通过,则评审过程结束。

40.如何保证专家已经很好地阅读了文档?

评审作者要负责准备充分的评审材料,对文档进行详细的说明,确保专家能够理解文档;同时专家要拿出专门的时间来阅读文档。

41.开发工具用过哪些?

VC:        MSDev            Case:        Rational Rose

Java:    Jbuilder            Database:     PowerDesigner

42.描述一下Windows的线程同步对象。

临界区、互斥、信号、事件

43.类静态成员变量在什么范围内有效?

等同于全局变量

44.面向对象的好处

继承性、多态性、封装性。

45.在C++中声明类,如何做到多个实例共享一个全局变量?

声明一个类静态成员变量。

46.在编码过程中文档的书写情况

简单的是对函数的返回值、参数、用途以及关键技术做文档说明。基本上向MSDN靠拢。

47.规范在自己日常工作中如何体现?

规范体现在:编程规范、文档模板、电子流程。

每天填写日志、每周作计划和总结,使用PSP工具

48.控件编写过没有

主要编写访问数据库的COM组件给前台程序调用。一般的UI控件是在CWnd的基础上编写的。

49.调试代码过程中遇到困难如何解决?

多使用Watch, Variable, Breakpoint, Stack等观察窗口发现问题;

使用联机帮助系统;        想其它开发小组成员请教。

50.C++构造函数,抽象类

构造函数是类初始化第一个调用的函数,如果一个类中包括抽象函数,则该类为抽象类,抽象类不能实例化,主要是作为接口定义。

51.介绍在项目开发中的角色

开发人员角色,负责详细设计、接口设计、单元测试计划和代码编写,一般要负责自己开发模块的单元测试。

52.接受过CMM哪些方面的培训?

公司内部CMM培训,包括KPA及开发流程。

53.评审如何进行?作为作者如何参与其中?

见前面36。

54.文档和代码不一致应如何处理?

确认文档是否存在错误和滞后,如果是则应该及时的更新文档,使之与代码保存一致;反之如果代码没有按照正确的文档所描述的进行设计,则应该更正代码,使之符合设计的要求。

55.修改代码或文档后,应提交哪些信息?配置管理人员做哪些工作?

应该提交配置标识项和相关的代码和文档。

56.使用过哪些配置管理工具?

Microsoft Visual SourceSafe和Rational ClearCase

57.配置管理人员的职责和主要工作内容

软件配置管理(Software Configuration Management)的目的是在整个项目的生命周期建立和维护软件项目产品的完整性。 

    软件配置管理包括在给定的时间点上标示软件的配置(即选定的软件工作产品及其描述),系统的控制对配置的更改,并在整个软件生命周期中维护配置的完整性和可跟踪性。置于软件配置管理之下的工作产品包括需向客户交付的软件产品(如软件需求文档和代码),以及与建立这些产品相关的项目(如编译程序)。

58.需求跟踪方面所做工作的描述

59.C++ 中常用到的this的含义

类中隐含的指向对象自身的指针,不用声明。 

60.用过stl模板吗?

标准模板库包括容器、算法和迭代子,包括向量类、链表类。MFC中常用的为Clist, Carray。

61.构造函数与析构函数的功能?

构造函数用来初始化。析构函数用来做清除工作,一般包括内存释放。

62.缺陷跟踪流程

问题提交人提交问题报告单->软件经理或组长审核问题通过->开发人员定位问题原因->软件经理或组长审核通过->配置库管理员修改配置库权限->开发人员实施修改->开发人员实施测试通过->配置库管理员对修改代码实施归档->测试人员实施回归测试通过->问题提交人关闭问题报告单

63.QA的了解

确保软件过程的步骤和标准得到实施。

.MFC的熟悉程度,说明CListView和CListCtrl有什么不同。

ClistView是从视图派生,ClistCtrl是从控件类派生,在ClistView中通过使用GetListCtrl可以获得ClistCtrl指针,将其作为一个ClistCtrl控件来使用。

65.Socket通讯过程中如何保证连接正常。

一般通过握手机制来确定链接正常,即定时在客户和服务器之间发送连接帧和确认帧来确定。如果是使用MFC的Csocket,通过检测OnClose事件和错误处理可以确定连接是否正常。

66.在华为工作期间有没有编写文档的经验。

67.在开发过程中如何使用SourceSafe。

主要在版本控制和配置管理过程中使用SourceSafe。

68.开发过程中的问题处理流程是怎样的。

参见63。

C++面试试题(一)

1、下面的程序是否有错误,如果有错,请说明原因。

char* const pszHelp = “hello”;

pszHelp[0] = ‘a’;

因为pszHelp指向一个常量字符串,所以根本不允许修改字符串内容。除非使用一个字符数组。

2、const用法:

const char* p

        p是一字符串指针,该指针指向的内容是常量,指针指向的内容不能被修改

char const* p

        同上

char* const p

        p是一字符串指针,该指针是常量指针,指针不能被修改

3、什么是抽象类

包含抽象函数的类是抽象类,满足virtual fun() = 0; 的语法的函数是抽象函数。主要用于提供接口,如同Java中的Interface。

4、什么时候需要使用虚拟析构函数

一般情况下类的析构函数都定义成虚函数,主要是考虑在使用基类指针操作派生类对象时保证类的析构顺序。

5、请指出下面代码存在的潜在问题

class CC {

    int* m_pCount;

public:

    void clear() { if ( m_pCount ) delete m_pCount; }

    CC() { m_pCount = new int; }

    ~CC() { clear(); }

}

主要存在的问题是clear函数在delete m_pCount;后并没有置指针为空(m_pCount = NULL),这样当第二次调用 clear 时,会出现问题。

6、如何定义禁止实例化的纯抽象基类

这个问题很奇怪,抽象类本身就不能被实例化,在程序编译时就会提示出错。

7、在进行私有继承时,如何修改基类成员的存取权限

定义一个指向该基类的友元函数,就可以绕过私有继承操作基类成员。

8、如何定义一个指向类的成员函数的指针

void (CC::*bfpClear)() = &CC::clear;

9、类A派生类B和C,类D从类B、C派生,如何将一个类A的指针指向一个类D的指针

直接使用即可,主要是考察运行时多态的概念。本题和题4要一起考虑。

10、请说出程序运行的结果

class A {

public:

    virtual void func() { cout << “I am in base” << endl; };

}

class B : public A {

        public:

    virtual void func() { cout << “I am in derived” << endl; }

}

void main() 

{

    B* bb = new B;

bb->func();

    A* aa = (A*)bb;

aa->func();

    ….

}

    I am in derived

    I am in derived

    主要考察虚函数的使用

11、分析下面代码,指出问题

int* func() { int i =0 ;  return &i; }

    返回的是一个局部简单类型变量地址,程序可能会出错,而且返回的指针不能采用delete进行删除。

class CObject;

CObject* funobj() { CObject obj; …. return &obj; }

    返回的是一个局部CObject类型变量地址,程序会出错,而且返回的指针不能采用delete进行删除。

CString funobj() { CString strTemp = _T(“temp”); return strTemp; }

    不会出错,返回的CString会调用CString的拷贝构造函数返回。

12、Debug版本中经常使用ASSERT进行断言,在Release版本中有一个起同样作用的函数,请说明。

VERIFY,而且要注意ASSERT中的语句在Release版本中会忽略。

13、下面的程序是否有错误,如果有错,请说明原因。

struct A1 { int i; };

A1 a1;

a1.i = 0;

        没有错误

class A1 { int i;};

A1 a1;

a1.i = 0;

有错误,未显示权限定义符缺省为private。

14、下面程序是否有错,有错,请说明原因。:

char szTest[] = “hello”;

char* const psz = szTest;

psz[0] = ‘b’;

        没有错误,psz指向的字符串指针是常量,指针不能被修改,但指针指向的内容可以修改

15、在继承层次上,构造函数和析构函数的调用顺序如何?

构造函数:先基类,后派生类

析构函数:先派生类,后基类

16、如果一个包容器中包含指向对象的指针,当从包容器中删除某个指针时,会析构该指针指向的对象吗?

包容器并不关心存放对象的类型,所以从包容器中删除成员时,仅仅只是从容器中释放该成员占有的空间。如果该成员是一个指向某个对象的指针,由用户保证指针指向对象的内存释放。

17、如何阻止构造函数的自动转换

首先要理解什么是构造函数的自动转换。

比如有 

class A {….};

class B { B(A&) {…};};

func(B) {};

main() 

{

    A a;

    Func(a);

}

在调用Func(a)时,会自动调用B(A&)构造函数,保证传给Func的参数是B类型。应该采用explicit关键字来防止构造函数的自动转换。

18、类的成员函数作为回调函数有什么要求?

必须是静态成员函数。

19、分析代码,给出i, j ,k的结果。

int i = 0, j = 0; k = 0;

if (++i || j++ || ++k ) {}

    主要是注意前置操作符和后置操作符的区别,还要考虑 或操作 在条件判断中的实现(如果一个为真,则不进行后续判断)。

    i = 1, j = 0, k = 0

C++面试试题(二)

1、标准建模语言UML的重要内容可以由哪五类图(共9种图形)来定义,并简要说明这些图所描述的对象。

标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:

  ·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。

  ·第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。

  ·第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。

  ·第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。

  ·第五类是实现图( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。

2、什么是虚拟函式、虚拟继承?

3、你在使用面向对象程序设计语言(例如C++,Smalltalk等)和可重用的对象类库上有何经验?实际效果如何?有什么优缺点?

4、引用和指针之间有什么区别?

引用是一个别名,而指针是一个保存地址的变量。引用不能为空也不能赋值。

5、什么是函数重载?

函数重载是指用同一个函数名写多个函数的能力,这些函数根据参数的数目、类型加以区别。

6、C++与其它传统编程语言相比有何特点?

7、简要说明如何绘制UML活动图。

UML 活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。要创建一个 UML 活动图,您需要反复执行下列步骤。

  第一步,定义活动图的范围首先应该定义您要对什么建模。单个用户案例力?一个用户案例的一部分?一个包含多个用户案例的商务流程?一个类的单个方法?一旦您定义了您所作图的范围,您应该在其顶部,用一个标注添加标签,指明该图的标题和唯一的标示符。您有可能也想要包括该图的时间甚至作者名。

  第二步,添加起始和结束点每个活动图有一个起始点和结束点,因此您也要马上添加它们。在 《UML 精粹》(UML Distilled) (参见参考资料),Fowler 和 Scott 认为结束点是可选的。有时候一个活动只是一个简单的结束,如果是这种情况,指明其唯一的转变是到一个结束点也是无害的。这样,当其他人阅读您的图时,他或她知道您已经考虑了如何退出这些活动。

  第三步,添加活动如果您正对一个用户案例建模,对每个角色(actor)所发出的主要步骤引入一个活动(该活动可能包括起始步骤,加上对起始步骤系统响应的任何步骤)。如果您正对一个高层的商务流程建模,对每个主要流程引入一个活动,通常为一个用户案例或用户案例包。最后,如果您正对一个方法建模,那么对此引入一个活动是很常见的。 

  第四步,添加活动间的转变我的风格总是应该退出一个活动,即使它是转变到一个结束点。一旦一个活动有多个转变时,您必需对每个转变加以相应标示。

  第五步,添加决策点有时候,您所建模的逻辑需要做出一个决策。有可能是需要检查某些事务或比较某些事务。要注意的是,使用决策点是可选的。例如,在图 1 中,我可以只是简单地将“接受”和“拒绝”两个转变直接接到“在大学报名(Enroll in University)”活动。

  第六步,找出可并行活动之处当两个活动间没有直接的联系,而且它们都必需在第三个活动开始前结束,那它们是可以并行运行的。在图 1 中,您看到是有可能“参加简要介绍(attend overview)”和“报名研讨班(enroll in seminars)”可以按任意次序进行,但是它们都得在您结束整个流程前完成。

8、为什么有些类成员函数在类声明中定义而有一些则不是呢?

在声明中定义成员函数的实现是按内嵌方式进行的。一般来讲,只有当函数特别简单才这么做。注意,即使函数是在类声明之外声明的,你也可以用关键字inline使成员函数变成内嵌的。

9、面向对象分析和设计的阶段有哪些?

概念化、分析、设计、实现、测试、发行(谨供参考)

10、为什么要费力地生成抽象数据类型――为什么不把它设为非抽象的数据类型和避免创建这种类型的对象呢?

C++中很多约定的目的是为了便于使编译器找到错误,以避免你向用户提供的代码中产生运行时错误。把一个类抽象化――即给它提供纯虚函数――会使编译器把从这种抽象类型创建的任何对象标记为错误。

11、什么是多态性?多态性是如何实现的?

函数多态性是指用多个含义重载一个函数的能力,即允许创建多个名称相同的函数。

可通过改变同名函数变元的类型或个数来实现。

12、查错:下面这段代码有什么错误?

class Shape()

{

public:

Shape();

virtual ~Shape();

virtual Shape(const Shape&);

}

不能声明一个副本构造函数为虚拟。

13、查错:下面的代码有什么错?

int main()

{

    int SomeVariable = 5;

    count <<”SomeVariable:”<    int * pVar = &SomeVariable;

    pVar = 9;

    count <<”SomeVariable:”<<*pVar<<”\\n”;

    return 0;

}

程序编写者的意图是将9赋值给pVar所指的变量,不幸的是9却赋成了pVar的值,因为遗漏了间接访问运算符(*),如果用pVar来赋值的话导致灾难性错误。

14、查错:下面的程序有什么错误?并修改。

# include

int * FuncOne();

int main()

{

int * pint = FuncOne();

  cout <<”the value of pInt back in main is:”<< * pint << endl

  return 0;

}

int * FuncOne()

{

  int * pint = new int(5);

  count <<”the value of pInt in FuncOne is:”<<* pint<  return pint;

}

内存泄漏。

修改:

# include

int  FuncOne();

int main()

{

int theint = FuncOne();

  cout <<”the value of pInt back in main is:”<  return 0;

}

int  FuncOne()

{

  int * pint = new int(5);

  cout <<”the value of pInt in FuncOne is:”<<* pint<int temp = *pint;

  delete pint;

  return temp;

}

13、标准建模语言UML的重要内容可以由哪五类图(共9种图形)来定义,并简要说明这些图所描述的对象。

14、什么是虚拟函数、虚拟继承?

15、你在使用面向对象程序设计语言(例如C++, Java等)和可重用的对象类库上有何经验?实际效果如何?有什么优缺点?

16、引用和指针之间有什么区别?

17、什么是函数重载?

18、C++与其它传统编程语言相比有何特点?

19、简要说明如何绘制UML活动图。

20、为什么有些类成员函数在类声明中定义而有一些则不是呢?

21、对象分析和设计的阶段有哪些?

22、为什么要费力地生成抽象数据类型――为什么不把它设为非抽象的数据类型和避免创建这种类型的对象呢?

23、什么是多态性?多态性是如何实现的?

24、查错:下面这段代码有什么错误?

class Shape()

{

public:

Shape();

virtual ~Shape();

virtual Shape(const Shape&);

}

13、查错:下面的代码有什么错?

int main()

{

    int SomeVariable = 5;

    count <<”SomeVariable:”<    int * pVar = &SomeVariable;

    pVar = 9;

    count <<”SomeVariable:”<<*pVar<<”\\n”;

    return 0;

}

14、查错:下面的程序有什么错误?并修改。

# include

int * FuncOne();

int main()

{

int * pint = FuncOne;

  cout <<”the value of pInt back in main is:”<< * pint << end1;

  return 0;

}

int * FuncOne()

{

  int * pint = new int(5);

  count <<”the value of pInt in FuncOne is:”<<* pint<  return pint;

}

C++面试试题(三)(华为)

1)C++ 中常用到的this的含义

2)用过stl模板吗?

3)构造函数与析构函数的功能?

4)在华为公司的一些工作情况的了解.

5)缺陷跟踪流程

6)华为QA的了解.

1、有没有在华为工作的经历,介绍。

2、MFC的熟悉程度,说明CListView和CListCtrl有什么不同。

3、Socket通讯过程中如何保证连接正常。

4、在华为工作期间有没有编写文档的经验。

5、在开发过程中如何使用SourceSaft。

6、开发过程中的问题处理流程是怎样的。

C++面试试题(四)

1.C和C++的主要区别

2.多态和重载

3.多态如何实现

4.设计模式

5.同一个类不同对象之间的通讯

6.友元函数

7.全局变量的生存期

8.全局和静态的区别

9.进程和进程之间的通讯

10.DDE

11.DDL

12.Socket

13.结构和类的区别

14.自定义消息的步骤

15.数据库引擎

16.无模式和有模式对话框的区别

17.项目开发的大体步骤

18.SOCKET机制

19.线程通讯和同步

20.ASSERT

21.DUMP

22.对Document View有什么认识

23.DLL的创建和使用

24.单元测试方法和工具

25.详细设计过程中提交的文档

26.开发设计的整个过程

27.怎样保证代码的质量

28.数据库的几个范式

29.ACCESS和SQL Server的区别

30.Windows的消息处理机制

31.在API中,怎样做一个对话框

32.怎样理解面向对象

33.TCP、UDP属于网络协议中的哪一层?

34.菜单消息和试图消息的区别

35.文件类、序列化

36.信号量和互斥量的区别

37.重载有几种

38.指针常量、常量指针

电话面试篇

面试时间2003.4.22面试地点深圳
面试方式(电话、面谈)电话合作方

主考官

郁鑫
面试问题归纳列举
1、谈谈你对C++异常的认识。

2、谈谈你对STL的认识,你认为应该在工作中大量使用GP吗?

3、谈谈你对virtual interitance private interitance的认识。

4、你熟悉设计模式吗?什么是command模式?

5、如果希望把对象成员函数指针作为回调函数要考虑什么?

6、类的静态成员变量与全局变量的比较?

7、什么是抽象类?释构函数可以声时为抽象函数吗?

8、谈谈你对软件工程的认识。

9、你熟悉vml吗?

10、对于tcp/ip协议,你熟悉吗?

面试时间2003.4.15面试地点龙岗
面试方式(电话、面谈)面谈合作方

主考官

陈丹博
面试问题归纳列举
1、原来所做项目的系统架构。

2、写出string类的构造,结构、拷贝构造的实现。

3、函数重载与虚函数的区别。

4、如何实现在一个链表中,添加三个相似类的实例。

5、new出来的堆内存没有正确释放。如new  int[0],但没有delete 

面试时间2003.5.29面试地点科技园2号楼

面试方式(电话、面谈)面谈合作方

主考官

面试问题归纳列举
1、你做过的项目最大代码行数有多少?

2、一天能写多少代码。

3、介绍一下你擅长的方面。

4、你怎样判断一个链表是否循环。

5、存储过程和触发器的用法

面试时间2003.4.9面试地点深圳公司
面试方式(电话、面谈)电话合作方主考官殷红军
面试问题归纳列举
1、原wcoma小组负责msc设备面板模块的流程。客服要求的不是之处,并说明如何改进。

2、有没有熟悉设计模式?

3、单元测试的方法?是的盒不是墨盒测试。

4、如何对函数A调用函数B进行测试。

5、问设备面板中,参数对话框是如何做出来的?

6、单元测试如何进行?

7、有没有使用过什么工具进行单元测试?

面试时间2003.4.10面试地点华为基地
面试方式(电话、面谈)面谈合作方主考官韩振发
面试问题归纳列举
1、做了哪些项目?开发工具是什么?

2、UNIX上开发了哪些,目的是什么,操作系统sco还是sun硬件是什么厂商。

3、目前的项目定了没有?能否立即入职?

4、如果入职后,能否做定一年?

5、在制度没有改革前,有些不一定合理的制度能否适应?

6、软件开发的过程中有时会加班,扣星期六能否理解?

7、是否有深户?

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举
1、面向对象的三个特征。

2、静态成员函数与普通成员函数的区别。静态数据成员与普通数据成员的区别。

3、引用的特征。

4、VC中动态库的.LIB与.DLL的区别

5、二叉树的概念与平衡二叉树的概念,平衡二叉树的特点,树遍历的方法。

6、WINDOWS消息机制的特点。

7、LINUX下SOCKET与WINDOWS SOCKET的区别:以及相互通讯要注意的问题。

8、有关类继承的概念。

9、有关线程通信与戋进行通讯的区别与方式。

10、两个线程同步的基本处理方法与API编程或用语言描述。

11、进程的地址空间与线程的地址空间的关系。

12、线程与进程的区别,线程的特点。

13、SOCKET编程的基本步骤(SOCKET服务器与客户端)。

14、有关通讯中字节序的问题。

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举
1.C++有什么特点?

2.动态链接库,lib和.dll在功能上有什么不同?

3.C++异常的处理方法。

4.SendMerrager和plstMessage有什么区别?

5.静态成员和普通成员有什么不同?静态成员函数呢?

6.同步的几类型?

7.事备的概念.

8.存储过程中IFA=NVU THEN分支1 分去2 执行哪个分支呢?

9.数据库中有两个表A B表中数据都为100万,用delect count 查询两表,哪个耗时长?为什么?

10.SQL Server和Sbase数据中用delete删除后需要提交吗?Oracle呢?为什么?

11.Oracle中为什么索引建立时不用POTUSED?

12.SQL Server中触发器是行级触发还是表级触发?

13.最近一个项目的数据量处理有多大?你们处理查询是怎样处理的?

14.游标的用法?游标用法用完应注意什么?

15.在要求较高联机性能条件下,存储过程中的事务有何注意的?

16.Commit怎么用?在Syabse和SQL Server中是否要用commit?

17.你做过Oracle的哪些优化?

18.大致讲讲OracleR 体系结构

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举

1.面向对象的特性。

2.Sendmessage与postmessage的区别

3.静态成员函数与普通成员函数的区别。

4.线程同步有哪些方法。

5.什么是死锁,死锁在什么情况下发生,如何解决?

6.简述引用的特性。

7.异常处理有哪些方法怎样辅获异常。

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举
1.事务是什么?

2.存储过程中IFA(字符)=NVLL THEN 分支1 EL&E 分支2 ,执行哪个分支?正确答案:两个都不执行。

3.数据库中有两个表A,B,表中数据都为100万,用delete删除A表中的记录并提交后用select count查询。

4.两表,哪个耗的时间长?为什么?

5.用truncate删除A表中的记录后,用select count 查询两表,哪个耗时间长?为什么?

6.SQL Server和sybase数据中用delete删除数据后需要提交吗?Oracle呢?为什么?

7.Oracle 中为什么索引建立时不用POTVSED?

8.面象对象程序设计的优点是什么?

9.在windows API中,SENDME&&TME&&AGE有何区别?

10.C++中,“引用&”有什么作用?

在C++中,动态连接库,lib和dll有何区别?

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举
1.二叉树遍历方式

2.平衡二叉树

3.线程与进程的关系和区别

4.是否写过存储过程

5.事务中回滚前的操作被如何处置?

6.引用变量可否重新赋值。

7.有关VC方面基础性问题。

8.自己描述最近一个项目的概况。

9.Oracle数据库方面的问题。

10.VC编程实从事贸易一线程。

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举
1、你曾经做过数据库的项目是什么?

2、用什么做数据库?

3、你对TCP、IP理解怎么样?

4、介绍一下你曾经做过的项目.

5、你在项目中负责什么?

6、VC下的消息机制?

7、你做过线程哪一块?

8、你对多线程怎么理解?

在你曾经的项目中怎样运行多线程?

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远
面试问题归纳列举
1.面向对象编程的三个特性是什么?

2.VC中dll的lib文件和dll有什么不同?

3.Sendmessage和postmessage有什么不同?

4.为了防止内存泄露,有什么较好的方法?

5.事务的概念?特性?

6.在要求较高联机性能的条件下,存储过程中的事务有何要注意的?

7.如何在Oracle中定义一个仅可任凭输入文可作输出的存储过程。

8.有关VC中一个进程中几个线程互相同步的问题?(要求填写代码,API等)

9.对引用的理解?

10.游标的回法?游标使用完后怎么办?

11.Commit怎么用?在sybase和SQL Server中是否要Commit,为什么?

面试时间2003.4.22面试地点深圳
面试方式(电话、面谈)电话合作方主考官郁鑫
面试问题归纳列举
1、谈谈你对C++异常的认识。

2、谈谈你对STL的认识,你认为应该在工作中大量使用GP吗?

3、谈谈你对virtual interitance private interitance的认识。

4、你熟悉设计模式吗?什么是command模式?

5、如果希望把对象成员函数指针作为回调函数要考虑什么?

6、类的静态成员变量与全局变量的比较?

7、什么是抽象类?释构函数可以声时为抽象函数吗?

8、谈谈你对软件工程的认识。

9、你熟悉vml吗?

10、对于tcp/ip协议,你熟悉吗?

面试时间2003.4.15面试地点龙岗
面试方式(电话、面谈)面谈合作方主考官陈丹博
面试问题归纳列举
1、原来所做项目的系统架构。

2、写出string类的构造,结构、拷贝构造的实现。

3、函数重载与虚函数的区别。

4、如何实现在一个链表中,添加三个相似类的实例。

5、new出来的堆内存没有正确释放。如new  int[0],但没有delete 

面试时间2003.5.29面试地点科技园2号楼

面试方式(电话、面谈)面谈合作方主考官
面试问题归纳列举
1、你做过的项目最大代码行数有多少?

2、一天能写多少代码。

3、介绍一下你擅长的方面。

4、你怎样判断一个链表是否循环。

5、存储过程和触发器的用法

面试时间2003.4.9面试地点深圳公司
 面试方式(电话、面谈)电话合作方主考官殷红军
 面试问题归纳列举
 1、原wcoma小组负责msc设备面板模块的流程。客服要求的不是之处,并说明如何改进。

2、有没有熟悉设计模式?

3、单元测试的方法?是的盒不是墨盒测试。

4、如何对函数A调用函数B进行测试。

5、问设备面板中,参数对话框是如何做出来的?

6、单元测试如何进行?

7、有没有使用过什么工具进行单元测试?

面试时间2003.4.10面试地点华为基地
面试方式(电话、面谈)面谈合作方

主考官

韩振发
面试问题归纳列举
8、做了哪些项目?开发工具是什么?

9、UNIX上开发了哪些,目的是什么,操作系统sco还是sun硬件是什么厂商。

10、目前的项目定了没有?能否立即入职?

11、如果入职后,能否做定一年?

12、在制度没有改革前,有些不一定合理的制度能否适应?

13、软件开发的过程中有时会加班,扣星期六能否理解?

14、是否有深户?

面试时间2003.5.6面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远(客户定制化)
面试问题归纳列举
1、面向对象的三个特征。

2、静态成员函数与普通成员函数的区别。静态数据成员与普通数据成员的区别。

3、引用的特征。

4、VC中动态库的.LIB与.DLL的区别

5、二叉树的概念与平衡二叉树的概念,平衡二叉树的特点,树遍历的方法。

6、WINDOWS消息机制的特点。

7、LINUX下SOCKET与WINDOWS SOCKET的区别:以及相互通讯要注意的问题。

8、有关类继承的概念。

9、有关线程通信与戋进行通讯的区别与方式。

10、两个线程同步的基本处理方法与API编程或用语言描述。

11、进程的地址空间与线程的地址空间的关系。

12、线程与进程的区别,线程的特点。

13、SOCKET编程的基本步骤(SOCKET服务器与客户端)。

14、有关通讯中字节序的问题。

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远(客户定制化)
面试问题归纳列举
1、你曾经做过数据库的项目是什么?

2、用什么做数据库?

3、你对TCP、IP理解怎么样?

4、介绍一下你曾经做过的项目.

5、你在项目中负责什么?

6、VC下的消息机制?

7、你做过线程哪一块?

8、你对多线程怎么理解?

在你曾经的项目中怎样运行多线程?

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远(客户定制化)
面试问题归纳列举
1.二叉树遍历方式

2.平衡二叉树

3.线程与进程的关系和区别

4.是否写过存储过程

5.事务中回滚前的操作被如何处置?

引用变量可否重新赋值。

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远(客户定制化)
面试问题归纳列举
1.事务是什么?

2.存储过程中IFA(字符)=NVLL THEN 分支1 EL&E 分支2 ,执行哪个分支?正确答案:两个都不执行。

3.数据库中有两个表A,B,表中数据都为100万,用delete删除A表中的记录并提交后用select count查询。

4.两表,哪个耗的时间长?为什么?

5.用truncate删除A表中的记录后,用select count 查询两表,哪个耗时间长?为什么?

6.SQL Server和sybase数据中用delete删除数据后需要提交吗?Oracle呢?为什么?

7.Oracle 中为什么索引建立时不用POTVSED?

8.面象对象程序设计的优点是什么?

9.在windows API中,SENDME&&TME&&AGE有何区别?

10.C++中,“引用&”有什么作用?

11.在C++中,动态连接库,lib和dll有何区别?

面试时间2003.6.3面试地点华为
面试方式(电话、面谈)面谈合作方主考官张寿远(客户定制化)
面试问题归纳列举
1.有关VC方面基础性问题。

2.自己描述最近一个项目的概况。

3.Oracle数据库方面的问题。

4.VC编程实从事贸易一线程。

5.面向对象的特性。

6.Sendmessage与postmessage的区别

7.静态成员函数与普通成员函数的区别。

8.线程同步有哪些方法。

9.什么是死锁,死锁在什么情况下发生,如何解决?

10.简述引用的特性。

异常处理有哪些方法怎样辅获异常。

文档

C++ 面试题精选

C++面试试题汇总――柯贤富管理软件需求分析篇1.STL类模板标准库中容器和算法这部分一般称为标准模板库2.为什么定义虚的析构函数?避免内存问题,当你可能通过基类指针删除派生类对象时。必须保证基类析构函数为虚函数。3.项目管理怎么进行?制定软件项目计划;软件项目跟踪及监控。软件项目计划(SoftwareProjectPlanning)的目的是为了完成软件工程和管理软件项目所制定的计划,其内容包括估计待完成的工作,建立必要的约定和完成工作的计划。软件项目跟踪和控制(SoftwareProject
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top