Autodesk的面试题全集

本文包含了一系列C++面试中常见的技术问题及解答,涵盖了类与对象、内存管理、模板、继承与多态等多个方面,旨在帮助读者深入理解C++语言特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、技术题

1.       在类的普通成员函数中调用虚函数,情况是怎么样的?(对象、引用、指针)

2.       关于成员变量初始化顺序,几个有依赖关系的成员变量要初始化,让写出构造函数。

3.       写一个双链表。

4.       写个is-a和has-a。

5.       struct vs. class.

6.       称8个小球的问题

7.       stl 里面vector的实现(内部空间的申请与分配)

8.       struct /class的区别

9.       为什么要用struct //成员的默认属性不同,用struct的话,主要是作为数据的集合。

10.   怎样使一个class不能被实例化 //1,构造函数私有化,2,抽象类

11.   私有继承和public继承的区别。 //is-a has-a

12.   void *p的问题 //不能++

13.   引用和指针的区别与联系。引用是否可以更改

14.   windows编程基础,线程与进程的区别

15.   com+是否熟悉

16.   简述一下hash算法

17.   一个32位的数据,怎样找到最左边的一个1?// n位的2进制数据怎样找罪左边的1,如果是在最左位,这个数是负数,否则的话,左移一位,看是否变成负数,这是O(n)的算法,O(n/2)的算法:二分方式查找

18.   一个4*4的格子,填入1~15 然后给个目标状态,怎样去搜索。

19.   给你100万个数据,数据的值在0~65535之间 用最快的速度排序

20.   如果我们的一个软件产品,用户回复说:运行速度很慢,你怎么处理?

21.   八皇后问题,详述解法

22.   kmp快速匹配算法 ---不算轻松的搞定

23.   无向图中两点间最短路问题 ---伟大的迪杰克斯拉算法

24.   空间中任意给两个向量,求角平分线

25.   什么是平衡树

26.   哈夫曼编码问题

27.   有向图求环

28.   .给n个点,求凸包问题

29.   四则运算(给一个前缀表达式,然后求解;给一个中缀表达式)

30.   STL中container有哪些?

31.   map中的数据存储方式是什么?

32.   map和hashmap有什么区别?

33.   hashmap是标准库中的吗?

34.   vector中的erase方法跟algorithm的remove有什么区别?

35.   object是什么?

36.   C++中如何阻止一个类被实例化?

37.   一般在什么时候构造函数被声明成private呢?//比如要阻止编译器生成默认的copy constructor

38.   什么时候编译器会生成默认的copy constructor呢?

39.   如果你已经写了一个构造函数,编译器还会生成copy constructor吗?

40.   为什么说如果一个类作为基类,则它的析构函数要声明成virtual的?

41.   inline的函数和#define有什么区别?什么时候会真的被inline,什么时候不会呢?

42.   如果把一个类的成员函数写在类的声明中是什么意思?

43.   public继承和private继承有什么架构上的区别?//public是is-a的关系,private是has-a的关系

44.   在多继承的时候,如果一个类继承同时继承自class A和class B,而class A和B中都有一个函数叫foo(),如何明确的在子类中指出override哪个父类的foo()?

45.   虚拟继承的语法是什么?

46.   部分模版特例化和全部模版特例化有什么区别?

47.   编一个函数,使一个单项链表转置。

48.   拆解一个整数,比如4,可以拆解成4=3+1;4=2+2;4=2+1+1;4=1+1+1+1

49.   不用库函数,实现strcpy或者memcpy等函数

50.   内联函数的作用和缺点

51.   指针和引用的区别

52.   友元的意义

53.   虚函数的意义

54.   Overload, Overwrite, Override 各自的特点和意义

55.   头文件中的ifndef/define/endif 干什么用?//防止该头文件被重复引用。

56.   2#i nclude <filename.h> 和#i nclude “filename.h” 有什么区别?

57.   在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?//C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的名字与C 语言的不同。C++提供了C 连接交换指定符号extern“C”来解决名字匹配问题

58.   一个类有基类、内部有一个其他类的成员对象,构造函数的执行顺序是怎样的?//先执行基类的(如果基类当中有虚基类,要先执行虚基类的,其他基类则按照声明派生类时的顺序依次执行),再执行成员对象的,最后执行自己的。

59.   请描述一个你熟悉的设计模式

60.   在UML 中,聚合(aggregation)和组合(composition)有什么区别?

61.   C#和C++除了语法上的差别以外,有什么不同的地方?

(1) c#有垃圾自动回收机制,程序员不用担心对象的回收。(2)c#严禁使用指针,只能处理对象。如果希望使用指针,则仅可在unsafe 程序块中能使用指针。(3)c#只能单继承。(4)必须通过类名访问静态成员。不能像C++中那样,通过对象访问静态成员。(5)在子类中覆盖父类的虚函数时必须用关键字override,覆盖父类的方法要用关键字new

62.   New delete与malloc free 的区别

63.   #define DOUBLE(x) x+x,i = 5*DOUBLE(10);i是多少?正确的声明是什么?

64.   有哪几种情况只能用intialization list 而不能用assignment?

当类中含有const、reference 成员变量;基类的构造函数都需要参数;类中含有其他类的成员对象,而该类的构造函数都需要参数。

65.   C++是不是类型安全的?//不是。两个不同类型的指针之间可以强制转换。C#是类型安全的。

66.   main 函数执行以前,还会执行什么代码?//全局对象的构造函数会在main 函数之前执行。

67.   描述内存分配方式以及它们的区别。//(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。

68.   比较一下C++中static_cast 和 dynamic_cast 的区别。

69.   当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。

70.   已知两个链表head1 和head2各自有序,请把它们合并成一个链表依然有序,要求用递归方法进行。

二、素质题

1.       你周围的同学怎么评价你?

2.       你是否做过一些组织策划的工作?

3.       你觉得自己的性格是怎样的?

4.       What's your hobbies?

5.       What is your great advantage you think of yourself?

6.       What is your drawback you think of yourself?

7.       How do you feel shanghai?

8.       当你和上司有分歧时,你怎么办?

9.       你如何与人相处? 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值