C++,C,java面试例题

本文介绍了C++与Java面试中经常出现的面向对象设计原则的题目,包括单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则和接口隔离原则。同时,提供了关于运算符重载、递归函数调用、友元函数和内存对齐等编程问题的解答。
摘要由CSDN通过智能技术生成

1在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 ( )。

A、无操作数的运算符

B、二元运算符

C、前缀一元运算符

D、后缀一元运算符

 

答案:C

解析:因为++--有前缀和后缀两种形式,为了区分,要求在后缀形式加一个int参数。Const Fraction operator ++(int),这里的int不过是个哑元,是用不上的,它只是用来判断++prefix还是postfix。如果有哑元,则是postfix,否则就是prefix同时定义前缀式操作符和后缀式操作符存在一个问题:它们的形参数目和类型相同,普通重载不能区别所定义的前缀式操作符还是后缀式操作符。为了解决这一问题,后缀式操作符函数接受一个额外的(即,无用的)int型形参。使用后缀式操作符进,编译器提供 0 作为这个形参的实参。尽管我们的前缀式操作符函数可以使用这个额外的形参,但通常不应该这样做。那个形参不是后缀式操作符的正常工作所需要的,它的唯一目的是使后缀函数与前缀函数区别开来。

 

2、下面不是面向对象的基本原则的是?

A单一职责原则(Single-Resposibility Principle

B开放封闭原则(Open-Closed principle

C抽象类原则(Abstract-Class principle

D依赖倒置原则(Dependecy-Inversion Principle

E接口隔离原则(Interface-Segregation Principle

 

 

答案:C

解析:

面向对象的五大基本原则

单一职责原则(SRP一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。 
开放封闭原则(OCP 软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。 
里氏替换原则(LSP 子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值