C++Road
C++ 的分享学习记录与思考
TowerOs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
写C的经验
给自己看的编码问题任何数据使用前最好 0 初始化减少使用宏,除非是为了 全局源码架构性的目的,比如根据Kconfig配置增减模块;尽量使用全局变量和inline函数来完成不要有面向对象的思维,别让面向对象搞坏了脑子header文件相当于控制源码的对外封闭性,当做public private关键字用就好使用struct 结构体,配合函数来模拟面向对象,如果你真的需要面向对象的话解决面向对象转结构性语言的不适用fuck it...原创 2020-08-04 15:20:12 · 290 阅读 · 0 评论 -
C++精确时间使用,各种时间统计列举
获得时间方法ctime 库只能统计到秒对于算法题:你可以让 程序跑1000遍后平均一下时间,或者更多的遍数对于项目代码:1000遍?come on!需要提高精度time 库windows.h:毫秒级std::GetTickCount()windows.h:微妙级别LARGE_INTEGER tmp;QueryPerformanceFrequency(&am...原创 2020-02-12 16:15:51 · 932 阅读 · 0 评论 -
Vscode+MinGW配置C++开发环境(解决版本过老和在线下载极慢问题)
文章目录准备电脑MinGW的编译器环境安装注意:配置Path环境路径VScode 安装C/C++拓展配置运行(多数配置直接被VSCODE自动生成)准备电脑MinGW的编译器环境为什么选择MinGW,支持位数可选,稳定,库包多,VScode有很好的支持为何不在 mingw.org下载,mingw版本较老,会有很多版本问题,第三方包问题,甚至标准库问题,因为不再维护为何推荐mingw-64,...原创 2020-02-09 14:53:13 · 5475 阅读 · 1 评论 -
C++ virtual 使用和原理介绍 :推迟指针指向的决定
这篇博客适合已经学过的同学再次思考和回忆,对不了解编译原理和基本编程语言基础的学者不友好文章目录virtual根本原理什么函数可以是虚函数虚析构函数virtual关键字的实现,动态绑定实现窥览virtual根本原理virtual 无论是函数,还是类继承中,他的真实功能就是推迟指针指向的决定,将在编译期的决定推迟到运行时决定,于是就有了多态的实现,多态的原理便是运行时的动态绑定。虚基类的继...原创 2020-01-26 20:25:10 · 367 阅读 · 0 评论 -
C++ (Generic Programming)泛型编程与STL实现架构性讲解
泛型程序设计(GP)的基本概念编写不依赖于具体数据类型的程序将算法从特定的数据结构中抽象出来,使其通用C++ 的模板为泛型程序设计奠定了关键基础与面向对象的区别:OOP关注的是编程的数据方面,而泛型编程关注的是算法、术语:概念用来界定具备一定功能的数据类型,列如“可比较大小的所有数据类型(有比较有比较运算符)”----Comparable 概念“具有共有的复制构造函数并可以...原创 2020-01-13 17:52:10 · 862 阅读 · 0 评论 -
C++ 通用数组类的封装
0x00 动态数组(长度可伸缩的数组)#pragma once#ifdef ARRAY_H#define ARRAY_Htemplate <class T> //数组模板定义class Array {private: T* list; //存放动态分配的数组内存首地址 int size; //数组长度public: Array(int sz = 50); //构造...原创 2020-01-12 23:23:01 · 485 阅读 · 0 评论 -
C++ 模板使用 元编程介绍
0x01 模板(编译器的处理)背景:我们要处理的问题的逻辑都是一样的,但是在处理具体问题是,他们的数据类型可能会不同解决方案一:对于每一种数据类型的相同逻辑操作进行函数重载,来适合对应数据的处理,而不知至于有问题带来的问题:有多个函数重载的代码冗余,当修改算法时必须要在各个数据类型的重载函数中同步修改造成不一致问题解决方案二:模板允许我们将处理问题的逻辑从不同的数据类型中抽离出来,形成容器...原创 2020-01-12 19:56:55 · 303 阅读 · 0 评论 -
C++ override 和 final的准确介绍及原理分析
0x00 c++11 标准 提供的显式函数覆盖检测手段(override)背景:在派生类中写覆盖基类中的虚函数时,可能会因为疏忽,使得没有正确覆盖,而这个问题还是比较难发现的解决:c++ 11标准实现了显式函数覆盖的关键字override,当我们写上这个关键字时,就是告诉编译器,我要覆盖基类的虚函数,那么编译期就会主动检查 派生类 和 基类 中的两个函数签名(Signature)是否相同,如果...原创 2020-01-12 19:10:55 · 768 阅读 · 0 评论 -
C++ virtual 使用与实现原理:推迟指针指向的决定
virtual根本原理virtual 无论是函数,还是类继承中,他的真实功能就是推迟指针指向的决定,将在编译期的决定推迟到运行时决定,于是就有了多态的实现,多态的原理便是运行时的动态绑定。虚基类的继承是的类变量的指针可以推迟指向,而解决子类的二义性的问题以及存储浪费问题编译期:虚函数的函数名符号指向是空的运行期:虚函数的指针指向对象域,而不是类域什么函数可以是虚函数一般...原创 2020-01-12 16:55:05 · 366 阅读 · 0 评论 -
C++ 中的运算符重载
0x00 c++ 原则:只能重载已有的运算符而且不改变结合性优先级:运算标识符作为词法分析器的Token,不能动态添加,编译时无法识别其他未被Lexer定义的运算符Token,而重载已有的运算符只是在给Token解析添加语义动作时,指明符号的调用指向而已,所以,绑定运算符的动作是可以动态的,但是,区分token的单位是在词法分析器里写死的,固定的。同时,结合性和优先级是语法分析层次上固定写...原创 2020-01-12 14:16:19 · 465 阅读 · 0 评论
分享