常见C++面试题

1.解释堆(heap)和栈(stack)的区别。


答:  堆: 1.由程序员分配释放,存放new出来的对象

   2.不连续,类似于链表,大小取决于计算机系统的虚拟内存

      栈: 1.由编译器自动分配释放,存放函数参数值或局部变量等。

   2.连续的存储区域(2M左右),空间不足会提示栈溢出(overflow)

 

2.论述含参数的宏与函数的优缺点。

 

答:   1.宏展开是在编译的时候进行的,在展开时并不分配内存单元。函数是在运行的处理的,分配临时的内存单元。

       2.函数中的参数有类型的限制,而宏只是简单的字符替换。

       3.多次使用宏,展开后代码会很长,而函数不会。

 

3.讲一讲析构函数和虚函数的用法和作用。

 

答:   析构函数是特殊的类成员函数,没有返回类型,没有参数,不能随意调用,也不能重载,只有在类对象的生命周期结束的时候由

    系统自动调用,作用是释放内存空间的作用。

虚函数是多态的一种表现。父类的指针指向子类的话,如果是虚方法,这调用的是子类的方法。如果父类的方法没有必要或无法

    实现,则可以将父类的方法设为纯虚方法(virtual),如果一个类包含一个以上的纯虚方法,则此类为抽象类。

 

4.在C++中有没有纯虚构造函数

 

答:没有。虚拟机制的设计目的就是为了使程序员在不需要知道啊细节的情况下也能使用对象。但是如果自己建立一个对象,那当然是必须要知道细节的。所以构造函数当然不能是纯虚的了。

 

5.如何实现一个非阻塞socket

 

答:select函数。

 

6.如何引用一个已经定义过的全局变量

 

答: 1.引用头文件。如果变量名错了,编译的时候就会报错。

       2.extern关键字。如果变量名错了,运行的时候才报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值