经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 C++

c++ 虚函数,虚表相关总结

面向对象,从单一的类开始说起。 cla  A { private:     int m_a;     int m_b; }; 这个类中有两个成员变量,都是i...[2021/3/1]

c++ 虚继承,多继承相关总结

看这一篇文章之前强烈建议先看以下我之前发布的 虚指针,虚函数剖析 例1: 以下代码输出什么? #include <iostream> using namespace std; cla A { protected: int m_data; pu...[2021/3/1]

C/C++编程日记 | C++的源程序改写成C语言!

  方法有两种: 第一种是将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写;第二种是在C中保留面向对象的部分特征,用结构体实现类的功能。 第一种方法,对于类的数目很少的情况还可以, 如果类的数目比较多,全部理解源代码,然后重写就很耗时间,而且很容易出错,更甚者...[2021/3/1]

c++指针数组与二维数组的最大区别

  下面随笔是关于指针数组说明及与二维数组的最大区别。 指针数组 数组的元素是指针型 例 利用指针数组存放矩阵 1 #include 2 using namespace std; 3 int main() { 4 int line1[] = { 1, 0, ...[2021/3/1]

c++指针类型的函数

  下面随笔将讲述c++指针类型的函数。   原创链接:https: www.cnblogs.com/iFrank/p/14444379.html 指针类型的函数   若函数的返回值是指针,该函数就是指针类型的函数。    指针函数的定义形式   存储类型 &nb...[2021/3/1]

c++函数指针说明

c++函数指针说明

  下面随笔说明函数指针用法。 函数指针的定义:   定义形式:   存储类型 数据类型 (*函数指针名)()   含义:   函数指针指向的是程序代码存储区 函数指针的典型用途-----实现函数回调   通过函数指针调用的函数     例如将函数的指针作为参数传递给一个函数,使得在...[2021/3/1]

【C++进阶之路】C++防止头文件被重复引入的3种方法!

在之前我们详细介绍了 C 语言中如何使用宏定义(#ifndef / #define / #endif)来有效避免头文件被重复 #include,此方式在 C++ 多文件编程中也很常用。 举个例子,如下是一个 C++ 项目,其内部含有 school.h 和 student.h 这 2 个头文件以...[2021/3/1]

配置 OpenGL(Win10 + VS2019 + GLAD + GLFW) 并创建自己的第一个 OpenGL 项目

在画出出色的效果之前,首先要做的就是创建一个 OpenGL 上下文和一个用于显式的窗口。 一些函数库已经提供了这样的功能,可以提供给开发者一个窗口和上下文来渲染。 比较流行的有 GLUT, SDL, SFML, GLFW, 此处我们使用 GLFW. OpenGL 相关库 OpenGL 相关库...[2021/3/1]

莫队学习笔记

转载请带上本博客地址:https: www.cnblogs.com/continue126/p/14450059.html 并注明原作者:@博客园:continue_1025,创作不易,请理解。 普通莫队 引入小例 \(zl\) 姐姐有一串数,由于学生化太头秃了,所以现在他想问你 \(m(m...[2021/3/1]

C++11 强类型枚举

枚举就是定义一个类别,并且穷举统一类别下的个体以供代码使用。 C++98 枚举存在的缺陷: 无论是具名枚举的名字还是枚举类型中的成员,都是全局范围的,其作用域是全局的。 如果在不同的枚举中定义了相同的枚举成员,则会出现重复声明(redeclaration)错误。 enum PUBLIC_...[2021/3/1]

Qt update刷新之源码分析(二)

大家好,我是IT文艺男,来自一线大厂的一线程序员 上次视频给大家从源码层面剖析了Qt update刷新机制的异步事件投递过程,这次视频主要从源码层面剖析Qt刷新事件(QEvent::UpdateRequest)的处理过程 我们追踪QEvent::UpdateRequest事件处理,进入消息通...[2021/3/1]

C++面向对象学习笔记(一)

C++面向对象学习笔记(一) 废话 最近在学C++后台开发这方面,在看侯捷老师的视频课,记录一些学到的新东西。由于笔者有一些C++的基础,所以一些基础的知识是不会在这里出现的。侯捷老师的课有讲很多关于C++的进阶内容,还是很不错的,就是讲话有点慢,得开倍速。有兴趣的兄弟们可以去看一看。 正文 ...[2021/3/1]

编译器实现之旅——第七章 编译器后端概观

在前面的旅程中,我们已经实现了整个的编译器前端。我们也知道,前端的目标是将源代码转变为抽象语法树,以供后端使用。从这一章开始,我们就要前往后端世界一探究竟了,现在,就让我们来看看编译器后端到底由哪些组件组成,其分别又是在做什么吧。 1. 编译器后端的结构组成 不同于编译器前端,编译器后...[2021/2/22]

题解 P1650 田忌赛马

(题面来自洛谷) 题目描述 我国历史上有个著名的故事: 那是在2300年以前。齐国的大将军田忌喜欢赛马。他经常和齐王赛马。他和齐王都有三匹马:常规马,上级马,超级马。一共赛三局,每局的胜者可以从负者这里取得200银币。每匹马只能用一次。齐王的马好,同等级的马,齐王的总是比田忌的要好一点...[2021/2/22]

C++的标识符的作用域与可见性

  下面是关于C++的标识符的作用域与可见性学习记录,仅供参考 标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域。 作用域分类     ①函数原型作用域     ②局部作用域(快作用域)     ③类作用域     ④文件作用域     ⑤命名空...[2021/2/22]

C++对象的生存期笔记

C++对象的生存期笔记

  下面随笔记录了C++对象的生存期知识 静态生存期 这种生存期与程序的运行期相同。 在文件作用域中声明的对象具有这种生存期。 在函数内部声明静态生存期对象,要冠以关键字static 。 动态生存期 块作用域中声明的,没有用static修饰的对象是动态生存期的...[2021/2/22]

C++类的友元机制说明

  下面给出C++类的友元机制说明(对类private、protected成员访问),需要注意的是,友元机制尽量不用或者少用,虽然它会提供某种程度的效率,但会带来数据安全性的问题。 类的友元   友元是C++提供的一种破坏数据封装和数据隐藏的机制。   通过将一个模块声明为另一个模块...[2021/2/22]

C++共享数据保护机制

  下面随笔说明C++共享数据保护机制。 共享数据的保护   对于既需要共享、又需要防止改变的数据应该声明为常类型(用const进行修饰)。   对于不改变对象状态的成员函数应该声明为常函数。 (1)常类型   ①常对象:必须进行初始化,不能被更新。   const 类名 对...[2021/2/22]

C++多文件结构和预编译命令

  下面随笔将给出C++多文件结构和预编译命令细节。 多文件结构和编译预处理命令 c++程序的一般组织结构   一个工程可以划分多个源文件   类声明文件(.h文件)   类实现文件(.cpp文件)   类的使用文件(main()所在.cpp文件)   利用工程来组合各个文件...[2021/2/22]

编译器实现之旅——第一章 编译器概观

编译器,近在咫尺却又远在天边。当我们写下任何非机器语言代码后,我们都需要借助编译器将这些代码变为通过计算机可运行的状态。但是,就是这样一个使用率极高的程序,我们对其却知之甚少。什么是编译器?编译器对我们的代码做了什么?又是怎么做的呢?如果你也怀有这些疑问,想要深入编译器内部一探究竟的话,...[2021/2/19]

史上最贴心的 VS code C++ 环境配置超详细教程

史上最贴心的 VS code C++ 环境配置超详细教程

前言 秦朝打败天下无敌手的室友法苏ovo前几天参加了CCSP,裸考的他遇见了Linux下的VsCode,然后搭C++环境搭了很久。 于是,他就学会了如何配置vscode的C++环境,然后,我也顺路学会了。真好。 一、VS code 前言 VS code作为一款当下非常受欢迎的一款IDE,...[2021/2/19]

彻底理解c++的隐式类型转换

隐式类型转换可以说是我们的老朋友了,在代码里我们或多或少都会依赖c++的隐式类型转换。 然而不幸的是隐式类型转换也是c++的一大坑点,稍不注意很容易写出各种奇妙的bug。 因此我想借着本文来梳理一遍c++的隐式类型转换,复习的同时也避免其他人踩到类似的坑。 本文索引 ...[2021/2/19]

JPG学习笔记5(附完整代码)

JPG学习笔记5(附完整代码)

  JPG压缩的第4步是哈夫曼编码。下面主要介绍JPEG是如果进行哈夫曼编码的。 图片引用自"Compre ed Image File Formats JPEG, PNG, GIF, XBM, BMP - John Miano"[1] 1.AC数据的哈夫曼Symbol. 对于AC...[2021/2/18]

JPG学习笔记4(附完整代码)

#topics h2 { background: rgba(43, 102, 149, 1); border-radius: 6px; box-shadow: 0 0 1px rgba(95, 90, 75, 1), 1px 1px 6px 1px rgba(10, 10, 0, 0.5)...[2021/2/18]

c++ 智能指针基础详解

c++ 智能指针基础详解

简介 在现代 C++ 编程中,标准库包含了智能指针(Smart pointers)。 智能指针用来确保程序不会出现内存和资源的泄漏,并且是"异常安全"(exception-safe)的。 智能指针的使用 智能指针定义在头文件 memory 里的命名空间 std 中。它对于资源获...[2021/2/18]

C/C++编程笔记:C ++中用于动态内存的new和delete运算符

C / C ++中的动态内存分配是指程序员手动执行内存分配。动态分配的内存在堆上分配,非静态和局部变量在堆栈上分配内存。 有什么应用? 动态分配内存的一种用途是分配可变大小的内存,而可变长度数组除外,这是编译器分配的内存无法实现的。 最重要的用途是为程序员提供了灵活性。无论何时...[2021/2/18]

关于显示加载动态链接库模块及卸载的问题

问题起因是,在一次模块卸载后,程序运行异常。遂对动态链接库做一些测试。 动态库加载方式有两种,隐式加载和显示加载,隐式加载包含xxx.lib导入库,在程序执行之前由动态加载器完成所有加载;显示加载则使用LoadLibrary方式;具体数据可参考《程序员的自我修养:链接,装载与库》一书。...[2021/2/18]

C++面向对象:C++ 接口(抽象类)

接口描述了类的行为和功能,而不需要完成类的特定实现。   C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来...[2021/2/18]

《C++ Primer》笔记 第11章 关联容器

关联容器类型 解释 按关键字有序保存元素 —— map 关联数组;保存关键字-值对 set 关键字即值,即只保存关键字的容器 multimap 关键字可重复出现的map multiset 关键字可重复出现的set 无序集合 —— unordered_m...[2021/2/18]

Qt update刷新之源码分析(一)

在做GUI开发时,要让控件刷新,会调用update函数;那么在调用了update函数后,Qt究竟基于什么原理、执行了什么代码使得屏幕上有变化?本文就带大家来探究探究其内部源码。 Qt手册中关于QWidget::update()解释如下:: Updates the widget unl...[2021/2/18]

C++ string (浅谈)

浅谈string <string> typedef basic_string<char> string; 本篇主要内容是简单地介绍 string类 在竞赛方面较实用的一些功能,可能满足不了各大佬的需求 还是采用查字典的形式,右边目录速览吧 一、迭代器 s...[2021/2/18]

注意了!C++默认初始化与值初始化的这个细节,千万不要忽视!

在C++语言中,默认初始化和值初始化这两种变量初始化方式都可以调用类型的默认构造函数。它们的形式非常相似,大部分情况下作用相同,但它们之间存在容易忽视的微小差别。 值初始化的形式为: T() new T() Cla ::Cla (...) : member() {...} T ...[2021/2/18]

C/C++编程笔记:如何在C++中的类内创建动态2D数组?

C/C++编程笔记:如何在C++中的类内创建动态2D数组?

假设我们要为Graph创建一个类。该类存储图的邻接矩阵表示。 因此,我们的类结构如下所示。 cla Graph  {   int V;    int adj[V][V];   };   int...[2021/2/18]

《C++ Primer》笔记 第12章 动态内存

shared_ptr和unique_ptr都支持的操作 解释 shared_ptr sp或unique_ptr up 空智能指针,可以指向类型为T的对象 p 将p用作一个条件判断,若p指向一个对象,则为true *p 解引用p,获得它指向的对象 p->mem...[2021/2/18]

在QT C++中调用 Python并将软件打包发布(裸机可运行)

在QT C++中调用 Python并将软件打包发布(裸机可运行)

      为了提高工作效率,需要一个可以自动生成多份相关联的word文档免去繁琐复制粘贴工作的软件。最后选定使用QT C++做界面和主要逻辑程序设计,对word的操作使用python写好对应的函数,然后在QT中调用自己写好的python函数完成相应的功能。...[2021/2/18]

JPG学习笔记2(附完整代码)

#topics h2 { background: rgba(43, 102, 149, 1); border-radius: 6px; box-shadow: 0 0 1px rgba(95, 90, 75, 1), 1px 1px 6px 1px rgba(10, 10, 0, 0.5)...[2021/2/18]

【LeetCode Hot 100 最长回文子串】

新年的刷的第一题,题目如下: 给你一个字符串 s,找到 s 中最长的回文子串。   示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3: 输入:s =...[2021/2/18]

【C++四种cast转换的学习】 const_cast,static_cast, dynamic_cast, reinterpret_cast

const_cast:用于将const变量转换为非const变量 int n = 5; int *k1 = const_cast<int*>(&n); 指针 *k1 = 1; int &k2 = const_cast<int&>(...[2021/2/18]

const成员函数可以将非const指针作为返回值吗?

先给出一段代码 cla A { int *x; public: int *f() const { return x; } }; 成员函数f返回指向私有成员 x 的非常量指针,我认为这会修改成员x ,对吧? f 是 const成员函数,我应该在返回类型前面添加 ...[2021/2/18]

《C++ Primer》笔记 第13章 拷贝控制

拷贝和移动构造函数定义了当用同类型的另一个对象初始化本对象时做什么。拷贝和移动赋值运算符定义了将一个对象赋予同类型的另一个对象时做什么。析构函数定义了当此类型对象销毁时做什么。我们称这些操作为拷贝控制操作。 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认...[2021/2/18]

这是一篇小短文

小鱼比可爱   描述 人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程...[2021/2/18]

C++模板沉思录

0 论抽象——前言 故事要从一个看起来非常简单的功能开始: 请计算两个数的和。 如果你对Python很熟悉,你一定会觉得:“哇!这太简单了!”,然后写出以下代码: def Plus(lhs, rhs): return lhs + rhs 那么,C语言又如何呢?你需要...[2021/2/18]

STL_stack容器

一、stack简介 stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。 有元素推入栈...[2021/2/1]

STL_queue容器

STL_queue容器

一、queue简介 queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。queue不提供遍历功能,也不提供迭代器。 queue是简单地装饰deque容器而成为另外的一种容器。 #include <queue> 二、que...[2021/2/1]

STL_list容器

一、List简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 ...[2021/2/1]

C++概念性总结

1.面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.什么是类? 答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。 3.对象都具有的两方面特征是什么?分别是什么含义? 答:对象都具有的特征是:静态特征和动态特征。 ...[2021/2/1]

基于 OpenGrok 实现 Emacs 中代码符号查找跳转

背景 一直比较忙,太久没写点东西了,今天介绍下之前做的一个 Emacs 脚本。在公司里主要用 C++ 作为生产语言,平时用 Mac 电脑工作,但是代码开发都是在远端服务器上。公司代码异常庞大,思考不逊色 Linux 内核代码量,并且源代码级别依赖的项目更是几十个。作为 Spacemacs...[2021/2/1]

程序编译 - f-dev

目录程序的本质内存 & 寄存器程序语言的发展编程语言的本质区别 https: www.bilibili.com/video/BV1UV411B7qU?p=7 笔记 程序的本质 编译器 将 程序代码 转化成 CPU 指令/机器码; 指令装载到内存中; CPU 读取/写入 ...[2021/2/1]

STL_map和multimap容器

一、map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map的具体实现采用红...[2021/2/1]

C/C++编程笔记:编写不会在C ++中编译的C程序,我教你呀!

C/C++编程笔记:编写不会在C ++中编译的C程序,我教你呀!

尽管C ++被设计为与C具有向后兼容性,但是当使用C ++编译器进行编译时,可能会有许多C程序会产生编译器错误。以下是其中一些。   1)在C ++中,在声明函数之前调用函数是编译器错误。但是在C语言中,它可以编译   2)在C ++中,使普通指针指向...[2021/2/1]

336
2
记录数:2449 页数:1/4912345678910下一页尾页
加载更多
 友情链接: NPS