文档介绍:精品范文模板 可修改删除
免责声明:图文来源于网络搜集,版权归原作者所以
若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。
撰写人:___________日 期:___________
成员变量占有自己独立的空间不为某个对象所私有。
24. 友元关系有什么特性?
答:单向的,非传递的,不能继承的。
25. 对 对象成员进行初始化的次序是什么?
答:它的次序完全不受它们在初始化表中次序的影响,只与成员对象在类中声明的次序来决定的。
26. 类和对象之间的关系是什么?
答:类是对象的抽象,对象是类的实例。
27. 对类的成员的访问属性有什么?
答:public,protected,private。
const char *p, char *const p;的区别
如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。
29. 是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?
virtual修饰符会被隐形继承的。
virtual可加可不加,子类覆盖它的函数不加virtual ,也能实现多态。
127.类成员函数的重载、覆盖和隐藏区别
答案:
成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
精品范文模板 可修改删除
免责声明:图文来源于网络搜集,版权归原作者所以
若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。
(3)参数不同;
(4)virtual 关键字可有可无。
覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
30. 函数重载是什么意思?它与虚函数的概念有什么区别?
函数重载是一个同名函数完成不同的功能,编译系统在编译阶段通过函数参数个数、参数类型不同,即实现的是静态的多态性。但是记住:不能仅仅通过函数返回值不同来实现函数重载。而虚函数实现的是在基类中通过使用关键字virtual来申明一个函数为虚函数,含义就是该函数的功能可能在将来的派生类中定义或者在基类的基础之上进行扩展,系统只能在运行阶段才能动态决定该调用哪一个函数,所以实现的是动态的多态性。它体现的是一个纵向的概念,也即在基类和派生类间实现。
31. 构造函数和析构函数是否可以被重载,为什么?
答:构造函数可以被重载,析构函数不可以被重载。因为构造函数可以有多个且可以带参数,而析构函数只能有一个,且不能带参数。
32. 如何定义和实现一个类的成员函数为回调函数?
答:
所谓的回调函数,就是预先在系统对函数进行注册,让系统知道这个函数的存在,以后,当某个事件发生时,再调用这个函数对事件进行响应。
定义一个类的成员函数时在该函数名前加CALLBACK即将其定义为回调函数,函数的实现和普通成员函数没有区别
33. 虚函数是怎么实现的?
答:简单说来使用了虚函数表.
34. 抽象类不会产生实例,所以不需要有构造函数。 错
35. 从一个模板类可以派生新的模板类,也可以派生非模板类。 对
36. main 函数执行以前,还会执行什么代码?
答案:全局对象的构造函数会在main 函数之前执行。
精品范文模板 可修改删除
免责声明:图文来源于网络搜集,版权归原作者所以
若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。
37. 当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。(Autodesk)
答案:肯定不是零。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。
38. delete与 delete []区别:
delete只会调用一次析构函数,而dele