这里可能没有你想看的...
02
28
C++ の 泛型编程(Generics) C++ の 泛型编程(Generics)
泛型编程是程序设计语言的一种风格或范式,允许程序员在编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。在 C++ 里,这是与 OOP 并列的一大分支,通过模板来实现。 Why 模板? 现在有一个需求,就是写一个简单的 s
2023-02-28
27
C++ の 类型转换(Type&Cast) C++ の 类型转换(Type&Cast)
当表达式期望为 T 类型,而我们只能产生 S 类型的表达式时,就需要利用类型转换功能来满足需求。 传统的转换总结来说分为隐式与显式两种。 隐式转换 凡是在语境中使用了某种表达式类型 T1,但语境不接受该类型,而接受另一类型 T2 的时候,
2023-02-27
19
C++ の 内存分配(Memory Allocation) C++ の 内存分配(Memory Allocation)
众所周知,C++ 是一门与内存紧密相关的语言,本文就来聊聊 C++ 眼中的内存分配。 内存布局 C++ 程序的内存分为 5 大区域,分别为代码区、常量存储区、全局/静态存储区、堆区、栈区,每个区域存放不同类型的数据: 代码区(.text
2023-02-19
14
C++ の 面向对象(OOP) C++ の 面向对象(OOP)
面向对象程序设计(Object-oriented programming, OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。 封装 装 装是指把数据与操作这些数据的函数绑定到一块,抽象成一个类。 C++11 引入移
2023-02-14
13
C++ の 内联函数(Inline) C++ の 内联函数(Inline)
inline 只能用于修饰函数,能够解决一些频繁调用的小函数大量消耗栈内存的问题,是一种提高程序运行效率的手段。 inline 基本 众所周知,函数的调用需要消耗栈内存,每次调用一个函数,就会在栈中分配一片函数所需内存(如参数压栈),但栈
2023-02-13
13
C++ の 静态修饰符(Static) C++ の 静态修饰符(Static)
static 是 C++ 中很常用的修饰符,它被用来控制变量的存储方式和可见性。 static 普通变量 static 修饰的普通变量存储在静态区,其生命周期延长至整个程序结束。只有第一次会执行初始化,若无初始值,则用默认值进行初始化。
2023-02-13
13
C++ の 常量(Const) C++ の 常量(Const)
const 与 volatile 一起并称 CV 限定符,用于指定被声明对象或被命名类型的常量性或易变性。 const 全称 constant,其指定一个约束,告知编译器该变量无法被修改。对于那些明确不发生改变的变量,应尽可能使用 con
2023-02-13
06
C++11 の 其它特性(Else) C++11 の 其它特性(Else)
有些 C++11 特性比较琐碎,单纯用一篇文章描述浪费,还有灌水嫌疑(bushi),于是整合到同一篇来讲。 范围 for 循环 允许 for 循环中使用 for (范围变量声明 : 范围表达式) 的形式进行遍历,无需 for(...;..
2023-02-06
05
C++11 の 正则表达式(Regex) C++11 の 正则表达式(Regex)
正则表达式,又称规则表达式(Regular Expression,常简写为 regex、regexp 或 RE),是一种文本模式/规则,包括普通字符和特殊字符(元字符)。通常使用单个字符串来表示正则表达式 pattern,并匹配一系列符合模
2023-02-05
04
C++11 の 预置与弃置(Default & Delete) C++11 の 预置与弃置(Default & Delete)
C++11 中新增了 default 与 delete 这俩关键字。请不要误会,这里的 delete 并不是与 new 搭配使用释放内存的那个,而是跟 default 相对的用于类成员函数声明的关键字。 default 众所周知,如果用户
2023-02-04
03
02
C++11 の 智能指针(Smart Pointer) C++11 の 智能指针(Smart Pointer)
C++ 不像 Java 那样有虚拟机动态的管理内存,如果使用裸指针,在程序运行过程中可能就会出现内存泄漏等问题,然而这种问题其实都可以通过 C++11 引入的智能指针来解决。 裸指针的内存泄漏问题 前面提到使用裸指针会存在内存泄漏等问题。
2023-02-02