当前位置:   article > 正文

C++题目(四)_父类的析构函数是非虚的,但是子类的析构函数是虚的

父类的析构函数是非虚的,但是子类的析构函数是虚的

盛大笔试:
1.求输出结果:

  1. #include "iostream"
  2. #include "vector"
  3. using namespace std;
  4. int main(void)
  5. {
  6. vector<int>array;
  7. array.push_back(100);
  8. array.push_back(300);
  9. array.push_back(300);
  10. array.push_back(500);
  11. vector<int>::iterator itor;
  12. for(itor=array.begin();itor!=array.end();itor++)
  13. {
  14. if(*itor==300)
  15. {
  16. itor = array.erase(itor);
  17. }
  18. }
  19. for(itor=array.begin();itor!=array.end();itor++)
  20. {
  21. cout<<*itor<<" ";
  22. }
  23. return 0;
  24. }


vector在erase之后,指向下一个元素的位置,其实进行erase操作时将后面所有元素都向前移动,迭代器位置没有移动。itor=array.erase(itor)  erase返回下一个元素的地址,相当于给itor一个新值。这里,第一个300被删除后,迭代器指向第二个300,然而随后就有itor++,就指向500了。

2、在win32平台下,以下哪种方式无法实现进程同步?A
A、Critical Section      B、Event      C、Mutex         D、Semaphore

3、按照升序排列的一组数据123456798,下面哪种排序法在空间和时间上最优?C
A、快速排序             B、冒泡排序             C、插入排序             D、堆排序

快排在基本有序的时候效率最低,为O(n2),冒泡一直是O(n2),插入排序在有序的时候最快,这个题目中只要比较9次,交换一次就完成了排序。最差的时候为逆序的时候。堆排序和归并排序相对来说很稳定。

4、TCP的关闭过程,说法正确的是(D)

A、TIME_WAIT状态称为MSL(Maximum Segment Lifetime)等待状态 (2MSL)
B、对一个established状态的TCP连接,在调用shutdown函数之前调用close接口,可以让主动调用的一方进入半关闭状态
C、主动发送FIN消息的连接端,收到对方回应ack之前不能发只能收,在收到对方回复ack之后不能发也不能收,进入CLOSING状态(进入TIME_WAIT)
D、在已经成功建立连接的TCP连接上,如果一端收到RST消息可以让TCP的连洁端绕过半关闭状态并允许丢失数据。

5、操作系统的一些特别端口要为特定的服务做预留,必须要root权限才能打开的端口描述正确的是(C)
A、端口号在64512-65535之间的端口
B、所有小于1024的每个端口
C、RFC标准文档中已经声明特定服务的相关端口,例如http服务的80端口,8080端口等
D、所有端口都可以不受权限限制打开
6、以下描述正确的是
A、虚函数是可以内联的,可以减少函数调用的开销提高效率
B、类里面可以同时存在函数名和参数都一样的虚函数和静态函数
C、父类的析构函数是非虚的,但是子类的析构函数是虚的,delete子类对象指针会调用父类的析构函数
D、以上都不对
C为对的,即使父类和子类都没有加上virtual,还是会照常调用父类的析构函数的。
A为正确的,可以参考:http://blog.csdn.net/zy1691/article/details

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/731412
推荐阅读
相关标签
  

闽ICP备14008679号