autodesk对vc++要求很高
1 dll,lib处理实现 .lib文件中包含什么? dll在内存中被多个函数共享,有几个拷贝?
简单说,lib里面只有符号,dll里面才是具体的实现. dll并不是拷贝到每一个调用者的进程空间,而是只在内存中保留一份拷贝。通过引用计数的方式控制其卸载。
但是dll中的全局变量是要被拷贝到每一个调用者的进程空间的
2 template<double>,template<int>等编译的时候作为几个类
如果没有记错,是两个.模板都是编译时产生代码,所以会出现两个类.如果程序中的类型较多,就会展开比较大的代码,但是速度会快.
3 struct ,class的区别,联系
只是成员变量或者函数默认的属性,struct默认是public,class是private
4 MAcro,inline区别,实现.编译运行时
准确来说,内联要更加安全.使用内联,参数需要精确地进行一次求值,参数类型被检查,并且被正确地进行必要的转换,避免了宏的一些问题.也方便调试.简单说,内联更加像函数.
5 进程与线程区别
最主要: 线程是执行代码的,CPU调度的单元,进程是个资源的容器
6 hdc-cdc区别联系
cdc是一块空间,保存一定的数据,hdc是放在进程的句柄表里面,用来标示所代表的cdc的
7 model dialog,modeless dialog,从创建到销毁全过程具体描述
模式的是CDialog的DoModal调用CreateIndirect创建对话框,然后通过一个循环自己处理消息的分发;无模式的是通过create创建,类似于一般窗口
8 各个线程new的内存,别的线程是否可以使用?
不可以,因为线程new的空间是在自己的进程空间,别的进程是得不到的.
9 RUNTIME_CLASS, is what??
建议看一下深入浅出mfc
RUNTIME_CLASS returns a pointer to a CRuntimeClass structure for the class specified by class_name. Only CObject-derived classes declared with DECLARE_DYNAMIC, DECLARE_DYNCREATE, or DECLARE_SERIAL will return pointers to a CRuntimeClass structure.
发信人: qinlinwang (lp我要好好love you), 信区: C_Cpp
标 题: 发autodesk面试题目供大家讨论
发信站: 兵马俑BBS (Wed May 24 14:04:14 2006), 本站(202.117.1.8)
1.C/C++ 一个空类占多少空间,多重继承的空类呢?
inside c
class X {};
class Y : public virtual X {};
class Z : public virtual X {};
class A : public Y, public Z {};
class B : public X {};
class C : public X {};
class D : public X {};
class E : public C, public D {};
1
4
4
8
1
1
1
1
2. 析构函数定义成虚函数?
delete base;
3.public和private继承的区别
4. 一个类不允许继承如何作?
5.多态的原理?
6.内联函数在哪定义?
7.析构函数可以是内联函数么?为什么?
可以,
8.析构函数可以抛出异常么?为什么?
不行
9.在多继承的时候,如果一个类继承同时继承自class A和class B,而class A和
B中都有一个函数叫foo(),如何明确的在子类中指出override哪个父类的foo()?