C++中存在两个比较难理解的操作std::move和std::forward。
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。
在我们日常编码中会发现有些功能代码,会不断的在不同的成员函数中用到,但是又不好将这些代码独立成一个成员函数。解决办法之一就是写一个公共的函数,不过函数用到的一些变量,就可能会成为全局变量。再说为了复用这么一段代码,就要单立出一个函数,也不是很好维护。此时就可以用到仿函数了。
这篇文章介绍了如何在最常见的编码方式(Unicode,UTF-8,ANSI)之间进行转换,结合代码实例,清晰明了,方便读者理解,例子也可以直接拿来使用。本文推荐给经常对文字字符串进行处理的程序员阅读,使其掌握字符转换的一些基本方法。
程序员常常需要和指针打交道。有时候,对一个空指针解引用,或者访问到野指针等,都会造成程序的崩溃。崩溃有时或许还好排查,如果只是访问到脏数据,但程序运行稳定,那排查起来就麻烦了,在C++11中,引入了智能指针的概念,能更加方便的管理堆内存。本文主要介绍C++11智能指针的原理,使用和简单实现。
C++20 最新进展:加入模块化和协程,进入特性冻结阶段。
在C语言中,我们常常用NULL作为指针变量的初始值,而在C++中,却不建议你这么做。
在C语言中typedef用来给复杂声明定义别名非常的方便,不过有时候typedef在复杂声明中不好理解。本文关键的一句话帮你理解typedef的用法。
如何在C++代码中调用写好的C接口?你可能会奇怪,C++不是兼容C吗?直接调用不就可以了?这里我们先按下不表,先看看C++如何调用C代码接口。
上周五排查了一个由于XXX模块操作疏忽导致栈越界引发的我的模块的智能指针Crash问题,因此稍微研究了一下,以作参考:
C++11中将表达式的值类型划分成了lvalue(左值)、rvalue(右值)、prvalue(纯右值)、xvalue(将亡值)、gvalue(泛左值) 5种。
记得我还在C语言里摸爬滚打的时候,对字符串的处理一直有种莫名的恐惧,这里指针偏移错了,那里字符串拷贝越界等等。学习了C++string类以后,发现原来字符串处理可以这么简单。那么本文会带领大家回顾一下string类的相关操作,查缺补漏。
本文将介绍最新标准中值得开发者关注的新特新和基本用法。
C++17(或 C++1z)是继 C++14 之后 C++ 编程语言 ISO/IEC 标准的下一次修订的非正式名称。
Vector类 在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
在C++中,一个类有八个默认函数:1、默认构造函数;2、默认拷贝构造函数;3、默认析构函数;4、默认重载赋值运算符函数;5、默认重载取址运算符函数;6、默认重载取址运算符const函数;
const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。
所谓对象数组是指每一数组元素都是对象的数组,也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放。
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。