分类: C/C++

9 篇文章

C++深层剖析
面向对象 多态的底层实现 多态的实现分为静态多态和动态多态: 静态多态(编译时多态):通过函数重载(overload)、模板(templates)和运算符重载来实现,它的调用在编译时就已经确定。 动态多态(运行时多态):通过继承、函数重写(override)和虚函数,依赖虚函数表(vtable)和虚函数表指针(vptr)实现动态绑定。 那么虚函数的…
C++基础编程
1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点击添加即可。 1.1.3 编写代码 #inc…
C++核心编程
1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理 全局区:存放全局变量、静态变量以及常量 栈区:由编译器自动分配释放, 存放函数的参数值、局部变量等 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 内存四区意义: 不同区域存放的数据,赋予不同的生命周期, 增加编…
C++提高编程
1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C++另一种编程思想称为泛型编程,主要利用的技术就是模板 C++提供两种模板机制:函数模板和类模板 1.2.1 函数模板语法 函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以…
C++11常用新特性
https://zhuanlan.zhihu.com/p/139515439 范围基for循环 范围基for循环(Range-based for loop)是 C++11 引入的一种简化的循环结构,用于遍历容器(如数组、向量、集合、映射等)中的元素 基本语法: for (declaration : container) { // 对每个元素执行的操…
C++知识速记
面向对象 在C++中,创建对象的两种方式有本质的不同,分别代表了在栈上和在堆上创建对象 1. SpeechManager* sm = new SpeechManager(); 堆上创建对象(动态分配内存): 使用new运算符,意味着SpeechManager对象是在堆上分配的 返回类型是SpeechManager*,即指向SpeechManager…
C++语法速查
map 新旧两种方式遍历map unordered_map<char, int> mp; for(const auto &mypair : mp) { cout << mypair.first << " " << mypair.second << endl; } 或者 for(co…
C语言main函数参数解析
示例程序mycp.c如上图所示,实现文件内容的复制。 经过编译后,执行./mycp open.c open2.c,程序执行成功。 解析 main函数参数: argc,即argument count,表示传递给程序的参数个数,程序本身的名字也计数在内。 argv,即argument vector,是一个字符串数组,包含所有传递给程序的参数。argv[…