希茂科技:棋牌游戏Visual C++面试经验

  1. 自我介绍
  2. 什么是多态,如何实现多态,析构函数为什么要定义为虚函数?
  3. 重载与重写的区别
  4. 函数调用过程,内存模型和函数调用模型

http://blog.csdn.net/wu5215080/article/details/38899259

http://blog.csdn.net/weiyuefei/article/details/52057554

http://blog.csdn.net/zhoukun1008/article/details/44262531

 

  1. 如何实现线程同步,m个线程如何竞争n个资源

Chrome

队列

线程设计不要太多

消息队列

Chrome

  1. 有没有实现过智能指针,什么是弱引用,什么是强引用?
  2. 使用过STL吗?如何遍历list,map和vector,使用迭代器时应该注意什么?

看C++ primier响应章节

 

  1. const与static的区别

http://blog.csdn.net/damon_hoo/article/details/38903041

  1. TCP与UDP区别,如何实现socket编程
  • 流式套接字(SOCK_STREAM 
     
    • 流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。
  • 数据包套接字(SOCK_DGRAM 
     
    • 数据包套接字提供了一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据包套接字使用UDP(User Datagram Protocol)协议进行数据的传输。由于数据包套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。
  • 原始套接字(SOCK_RAW 
    原始套接字(SOCKET_RAW)允许对较低层次的协议直接访问,比如IP、 ICMP协议,它常用于检验新的协议实现,或者访问现有服务中配置的新设备,因为RAW SOCKET可以自如地控制Windows下的多种协议,能够对网络底层的传输机制进行控制,所以可以应用原始套接字来操纵网络层和传输层应用。比如,我们可以通过RAW SOCKET来接收发向本机的ICMP、IGMP协议包,或者接收TCP/IP栈不能够处理的IP包,也可以用来发送一些自定包头或自定协议的IP包。网络监听技术很大程度上依赖于SOCKET_RAW

 

  1. 进程间怎么通信的?

http://blog.chinaunix.net/uid-26833883-id-3227144.html

1、几种进程间的通信方式

# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

# 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

# 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

# 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

# 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。

  1. 如果不看代码,程序崩了,怎么调试

Dump文件

  1. 你的职业规划是什么
  2. 你的期望薪资是多少
  3. 你还有什么要问的吗

你可能感兴趣的:(Visual,C++开发,Visual,C++开发)