Autodesk笔试

1. What's the difference between "struct" and "class" in c++?

    class 默认访问属性是private struct默认访问属性是public

 

2. What do we need to make destructor vitual?why?

    所有想作为基类的类都必须把destructor定义成虚函数  如果没有 那么派生类的destructor不会得到调用 造成资源泄漏。

 

3. What to declare member function as const?

     

 

4. 列出两个情况是必须使用成员初始化列表,而不在构造函数里面赋值

    1) const 成员变量必须在初始化列表里面赋值

    2) 如果基类没有无参构造函数 那么必须在初始化列表中调用基类有参构造函数 

 

5. #define DOUBLE(x) x+x   i = 5 * DOUBLE(10)   这个时候i是什么结果?

    60

 

6. static_cast和dynamic_cast有什么区别?

    static_cast等同于c中的强制类型转换 不做类型检查 编译时检查 用于非多态的转换

    dynamic_cast 做类型安全检查 如果不能转换返回NULL  经常用来把基类指针cast成派生类指针  运行时检查 用于多态的类型转换

 

7. namespace解决了什么问题?

    解决了名字冲突问题

 

8. auto_ptr是什么东西,有什么用?

    智能指针 用栈对象来取代堆对象 解决内存泄漏问题

 

9. C++有管理多种内存,分别写出他们是什么,他们的特性和性能如何?

    堆  new 分配的内存

    栈

    静态存储区

 

10. 写出一个基于char*的string类,包括构造析构函数和赋值运算符,取字串长度等基本操作
     

 

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

      1) 类中有类成员变量 而且该类有默认copy constructor

      2) 基类有默认copy constructor

      3) 有虚函数

      4) 有虚基类

 

12. inline的函数和#define有什么区别?

      #define不做类型检查 只是简单替换

 

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

      必须明确写出调用哪个  例如 p->A::foo();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值