深入理解C++虚函数

本文主要介绍 C++虚函数的底层实现,虚析构函数的作用,虚函数表的数据结构及存储方式,以及__declspec(novtable)的作用。

C++语言

从汇编的角度分析函数调用过程

本文从汇编的视角分析了函数的调用方式,掌握该知识对使用 OllyDbg 等动态调试工具会大有裨益。

C++语言

C++标准库线程的启动与退出

本文简要介绍C++标准库提供的几种线程操作方法,主要介绍如何判断线程是否已经结束运行。

C++语言

在C++中使用Lamada表达式

Lamada 表达式是 C++11 最重要也是最常用的特性之一。Lamada 来源于函数式编程的概念,也是现代编程语言的一个特点。

C++语言

编译器基础概念

一、C++代码编译流程以下面 C++代码为例: 1234567#include <stdio.h>​int main(){ printf("Hello World"); return 0;} 编译成二进制文件需要经过如下 4 个过程: 预编译:将 hello.c 和 stdio.h 预编译为 hello.i 编译:将 hello.i 编译为 hello.s 汇编:将 hello.s 翻译为机器指令 hello.o(.o 目标文件) 链接:链接各种需要的库和其他目标文件(该 hello 程序不需要)得到可执行文件 hello.out(相当于 windows 的.exe)。

C++语言

C++实现编译时断言

C++自 C++11 起支持 static_assert 编译时断言,如: 12static_assert ( bool_constexpr , message ) (C++11 起)static_assert ( bool_constexpr...

C++语言

理解C/C++运行时库

运行时库(Runtime library)通俗的说就是我们的程序运行的时候所依赖的库文件。在 Windows 平台,这些库由微软提供,并以 2 种形式提供:静态库(lib)、动态库(lib+dll),每个库还分别提供了 Debug 和 Release 两个版本。

C++语言

C++ 匿名对象

在WebRTC的源码中有如下函数: 1234template <typename T>std::unique_ptr<T> WrapUnique(T* ptr) { return std::unique_ptr<T>(ptr);}

C++语言
12