10月13——合合笔试

面试题目不难很基础的,但是做的不好,自己太毛糙了,不够了冷静,不够认真对待这件事!

1、

运行结果如下:

 

2、虚函数与纯虚函数的区别,以及各自的用途?

 

虚函数是派生类 "可以 "修改的成员函数。 
纯虚函数是派生类 "必须 "修改的成员函数。

虚函数的要求: 
1,只有类的成员函数才能说明为虚函数,这是因为虚函数仅适用于有继承关系的类对象。 
2,静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。 
3,内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置的。即使虚函数在类的内部 
      定义,编译时,仍将其看作非内联的。 
因为内联是在编译期决定的,而且直接展开为代码,而虚函数是在运行期决定的
4,构造函数不能是虚函数,因为构造时,对象还是一片未定型的空间。 
5,析构函数可以是虚函数,而且通常声明为虚函数。 

抽象类:含有纯虚函数的类称为抽象类,virtual   fun()   =   0;   抽象类不能实力化.。它仅仅用来抽象出一层方法描述,不必实现,所以对其实例化没有任何意义。 
如果我们不希望在类里出现某个对象的表现,利用抽象类可以推迟描述知道其某个派生类中。 

而有虚函数的类是可以实例化,主要用于RTTI机制。实现多态 

 

3、类的定义和类的声明的区别

 

声明不产生实际的目标代码,它的作用是告诉编译器

由于声明不产生实际代码,所以可以有多个重复声明的存在。

类,其实是数据类型的定义,和struct、enum的定义没有区别,
1、类型定义和对象定义是有区别的:
类型定义的作用范围和enum的定义是一样,类似const对象的默认作用域,文件内部作用域,所以即使被多个.c文件包含进去也不会发生类类型重定义,除非被一个c文件多次展开,多次展开的情况才用#ifndef _H_ #define _H_头文件哨兵避免,
但是非const对象定义就不同了,默认是extern作用域,所以被多个c文件包含就会发生对象重定义,用不用头文件哨兵都一样,这一点都没有回答到。
2、class A  
 
  ....  
};  
是类型定义,也同时进行了一个类型声明,所以在很多书上直接说声明一个类,稍微不严谨;
class A;才是单纯类型声明,声明只是说明一个名字在此处用到,所以可以重复声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值