排序
面试题:C++ 的 strcpy 和 memcpy 有什么区别?
在C++中,strcpy 和 memcpy 是两个常用的函数,用于复制数据。尽管它们的功能相似,但在使用场景和行为上有显著的区别。 1. strcpy 定义:strcpy 是用于复制字符串的函数...
面试题:C++ 中 static 的作用?什么场景下用到 static?
在 C++ 中,static 是一个关键字,具有多种用途,具体作用取决于它的使用场景。以下是 static 的主要作用和使用场景: 1. 静态局部变量 作用:在函数内部定义的静态局部变...
面试题:C++ 中 shared_from_this 的作用是什么?它有什么优点?
shared_from_this 是 C++ 标准库中的一个工具,用于在类的成员函数中安全地获取一个指向当前对象的 std::shared_ptr。它通常与 std::enable_shared_from_this 一起使用。 ...
面试题:平时开发 C++ 程序处理错误是使用 try-catch 还是错误码方式?
在 C++ 开发中,处理错误的方式主要有两种:异常处理(try-catch) 和 错误码(Error Code)。选择哪种方式取决于具体的应用场景和需求。以下是两种方式的对比以及适用场景: 1. ...
面试题:什么是 C++ 的函数重载?它的优点是什么?和重写有什么区别?
在 C++ 中,函数重载(Function Overloading)是一种允许在同一作用域内定义多个同名函数,但这些函数的参数列表必须不同的特性。通过函数重载,可以使用相同的函数名来实现不同的功能,从而提...
面试题: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++ 中,数组和指针是两个密切相关的概念,但它们有着本质的区别。以下是它们的详细对比: 1. 定义 数组: 数组是一个连续的内存块,用于存储相同类型的多个元素。 数组的大小在编译时...