笔试题(9)

1.什么是常对象?

常对象是指在任何场合都不能对其成员的 值进行修改的对象。

2.静态函数存在的意义?

静态私有成员在类外不能被访问,可通过 类的静态成员函数来访问;

当类的构造函数是私有的时,不像普通类那样 实例化自己,只能通过静态成员函数来调用构造函数。

3.不允许重载的 5 个运算符是哪些?

1. .*(成员指针访问运算符号)

2. ::域运算符

3. Sizeof 长度运算符号

4. ?:条件运算符号

5. .(成员访问符)

4.函数重载是什么意思?它与虚函数的概念 有什么区别?

函数重载是一个同名函数完成不同的功能, 编译系统在编译阶段通过函数参数个数、参数 类型不同,函数的返回值来区分该调用哪一个 函数,即实现的是静态的多态性。

但是记住:

不能仅仅通过函数返回值不同来实现函数重载。而虚函数实现的是在基类中通过使用关键 字 virtual 来申明一个函数为虚函数,含义就 是该函数的功能可能在将来的派生类中定义 或者在基类的基础之上进行扩展,系统只能在 运行阶段才能动态决定该调用哪一个函数,所 以实现的是动态的多态性。它体现的是一个纵 向的概念,也即在基类和派生类间实现。

5.main 函数执行以前,还会执行什么代码?

全局对象的构造函数会在 main 函数之前执行。

6.delete 与 delete []区别:

delete 只会调用一次析构函数,而 delete[] 会调用每一个成员的析构函数。

7. 继承的优缺点。

1、类继承是在编译时刻静态定义的,且可直 接使用,

2、类继承可以较方便地改变父类的实现。

缺点:

1、因为继承在编译时刻就定义了,所以无法 在运行时刻改变从父类继承的实现

2、父类通常至少定义了子类的部分行为,父 类的任何改变都可能影响子类的行为

3、如果继承下来的实现不适合解决新的问题, 则父类必须重写或被其他更适合的类替换。这种依赖关系限制了灵活性并最终限制了复用性。

8.解释堆和栈的区别。

栈区(stack)— 由编译器自动分配释放 , 存放函数的参数值,局部变量的值等。

堆(heap)一般由程序员分配释放, 若程序 员不释放,程序结束时可能由 OS 回收 。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值