排序
面试题:请介绍 C++ 多态的实现原理?
C++ 中的多态(Polymorphism)是面向对象编程的核心特性之一,它允许通过基类的指针或引用来调用派生类的重写函数。多态的实现依赖于虚函数(virtual function)和动态绑定(dynamic binding)...
面试题:C++ 中如何使用线程局部存储?它的原理是什么?
在 C++ 中,线程局部存储(Thread Local Storage, TLS) 是一种机制,允许每个线程拥有自己的变量实例,即使这些变量在代码中看起来是全局或静态的。线程局部存储的原理和用法如下: 1.&nb...
面试题:C++ 的迭代器和指针有什么区别?
C++ 中的迭代器(Iterator)和指针(Pointer)在某些方面非常相似,但它们的设计目的和使用场景有所不同。以下是它们的区别: 1. 设计目的 指针: 指针是 C/C++ 中的一种原生数据类型,用...
面试题:C++ 多线程开发需要注意些什么?线程同步有哪些手段?
C++ 多线程开发是一个复杂且容易出错的领域,需要特别注意线程安全、资源竞争、死锁等问题。以下是多线程开发中需要注意的事项以及常用的线程同步手段。 C++ 多线程开发需要注意的事项 线程安全...
面试题:C++ 中 vector 的 push_back 和 emplace_back 有什么区别?
push_back 和 emplace_back 是 C++ 中 std::vector 的两个成员函数,用于向容器末尾添加元素。它们的核心区别在于如何构造元素以及性能优化。 1. push_back 功能...
面试题:介绍下 socket 的多路复用?epoll 有哪些优点?
Socket 的多路复用 多路复用(Multiplexing)是一种允许单个线程同时监控多个文件描述符(如 Socket)的技术。通过多路复用,程序可以在一个线程中高效地处理多个 I/O 操作,而不需要为每个连接...
面试题:什么情况下会出现死锁?如何避免死锁?
死锁(Deadlock)是多线程编程中常见的问题,指的是两个或多个线程互相等待对方释放资源,导致所有线程都无法继续执行。以下是死锁的产生条件、示例以及避免死锁的方法。 1. 死锁的产生条...
面试题:用过哪些 C++ 数据库框架?都有什么优缺点?
在 C++ 开发中,数据库框架是连接和操作数据库的重要工具。以下是几种常见的 C++ 数据库框架及其优缺点: 1. ODBC (Open Database Connectivity) 优点: 跨平台:支持多种数据库(如 MySQL、Pos...
面试题:C++ 如何进行性能优化?
C++ 是一种高性能的编程语言,但在实际开发中,如果不注意代码的实现细节,仍然可能导致性能问题。以下是一些常见的 C++ 性能优化方法,涵盖了从代码设计到具体实现的多个方面。 1. 选择合...
面试题:C++ 的 string 内部使用的是堆内存还是栈内存?
在 C++ 中,std::string 的内部实现通常使用堆内存来存储字符串数据。这是因为字符串的长度通常是动态变化的,栈内存的大小有限且不适合存储可能很大的动态数据。 具体说明: 栈内存:栈内存用...