![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ Primer Plus
人工智能博士
王博Kings,985AI博士在读,CSDN博客专家,华为云专家,是《机器学习手推笔记》、《深度学习手推笔记》等作者;在人工智能、计算机视觉、无人驾驶等具有丰富的经验。
展开
-
【C++】自动存储持续性、自动变量和栈
目录1. 自动存储持续性2. 自动变量和栈1. 自动存储持续性在默认情况下,在函数中声明的函数参数和变量的储存持续性为自动,作用域为局部,没有链接性。也就是说,如果在main()中声明了一个名为texas的变量,并在函数oil()中也声明了一个名为texas变量,则创建了两个独立的变量——只有在定义它们的函数中才能使用它们。另外,当程序开始执行这些变量所属的代码块时,将为其分...原创 2019-07-16 17:00:21 · 1884 阅读 · 0 评论 -
【C++】静态存储持续性、无链接性
本程序主要关注total,它能够一直记录保持// static.cpp -- 使用static局部变量#include<iostream>const int ArSize = 10;void strcount(const char * str);int main(){ using namespace std; char input[ArSize]; char n...原创 2019-07-18 15:45:53 · 1466 阅读 · 0 评论 -
【C++】内存是什么?自动存储、静态存储、线性存储、动态存储的持续性如何理解?
内存有关的知识:C++使用三种不同方案来存储数据,C++11是四种,这些方案的区别在于数据保留在内存中的时间1. 自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。他们在程序开始执行其所属的函数或者代码块时被创建,在执行完函数或者代码块时,他们实用的内存被释放。C++有两种存储持续性为自动的变量2. 静态存储持续性:在函数定义外定义的变量和使用关键字s...原创 2019-07-16 09:52:04 · 1644 阅读 · 0 评论 -
【C++】单独编译--一个大型程序如何构造?
目录程序分为三部分头文件包含的内容:coordin.hfile1.cppfile2.cpp运行结果多个库连接问题程序分为三部分头文件:包含结构声明和使用这些结构的函数原型 源代码文件:包含与结构相关的函数原型代码 源代码文件:包含main,调用与结构相关的代码头文件包含的内容:函数原型 使用#define 或者const 定义的符号常量...原创 2019-07-15 17:13:49 · 1940 阅读 · 0 评论 -
【C++模版】显式实例化、显式具体化、隐式实例化
目录总体概念隐式实例化:显式实例化:显示具体化:详细理解显示实例化显示具体化总体概念隐式实例化:在使用模板之前,编译器不生成模板的声明和定义实例。只有当使用模板时,编译器才根据模板定义生成相应类型的实例。如:int i=0, j=1;swap(i, j); //编译器根据参数i,j的类型隐式地生成swap<int>(int &...原创 2019-07-15 10:08:04 · 2310 阅读 · 0 评论 -
【C++】如何理解函数模板【3】--重载的函数模板+显式具体化模板函数
模板函数显式具体化原创 2019-07-10 16:40:07 · 1685 阅读 · 0 评论 -
【C++】如何理解函数模板【2】--重载的函数模板+模板的局限性
目录程序示例:运行结果:模板的局限性程序示例://twotemps.cpp -- 使用重载模板#include<iostream>template <typename T>void Swap(T &a, T &b);template <typename T>void Swap(T *a, T *b, int n...原创 2019-06-27 22:11:22 · 1683 阅读 · 0 评论 -
【C++】如何理解函数模板【1】--函数模板是什么以及简单程序示例
基本理解示意原创 2019-06-23 22:31:09 · 1912 阅读 · 0 评论 -
【C++】如何理解函数重载【2】--函数重载示例
重载函数原创 2019-06-22 21:43:32 · 1695 阅读 · 0 评论 -
【C++】如何理解函数重载【1】--函数重载的基本概念
重载的基本概念学习笔记原创 2019-06-21 20:08:11 · 2119 阅读 · 0 评论 -
【C++】默认参数
基本概念和程序示例原创 2019-06-10 16:37:54 · 2144 阅读 · 0 评论 -
【C++】引用变量--7.何时使用引用参数
基本概念和使用法则原创 2019-06-09 21:20:25 · 1770 阅读 · 0 评论 -
【C++】引用变量--5.将引用用于类对象(核心+难点)
注意警醒的地方原创 2019-06-02 21:25:57 · 1837 阅读 · 0 评论 -
【C++】引用变量--6.对象、继承和引用(核心+难点)
继承和引用的巧妙原创 2019-06-06 17:11:05 · 1822 阅读 · 0 评论 -
【C++】引用变量--3.引用的属性与特别之处
目录首先先看一个程序示例refcube(x + 3.0)函数调用不了临时变量,引用参数和const什么是左值?为什么要尽可能使用const首先先看一个程序示例// cubes.cpp -- regular and reference arguments// 求立方,然后一个是普通的,一个是通过引用#include<iostream>doubl...原创 2019-05-23 16:48:31 · 1720 阅读 · 0 评论 -
【C++】引用变量--2.将引用作为函数参数
目录按值传递和按引用传递区别指针,引用传递程序示例程序理解按值传递和按引用传递区别指针,引用传递程序示例// swaps.cpp -- 使用指针和引用来进行交换#include<iostream>void swapr(int & a, int & b); void swapp(int * p, int * q);void sw...原创 2019-05-22 21:05:26 · 2533 阅读 · 0 评论 -
【C++】静态持续变量?如何创建静态持续变量?
1. C++为静态存储持续性变量提供了3中链接性:外部链接性(可在其他文件中访问) 内部链接性(只能在当前文件中访问) 无链接性(只能在当前函数或代码块中访问)由于静态变量的数量在程序运行期间是不变的,因此程序不需要使用特殊的装置(如栈)来管理它们编译器将分配固定的内存块来存储所有的静态变量,这些变量在整个程序执行期间一直存在 如果没有显式地初始化静态变量,编译器将把它设置...原创 2019-07-16 17:25:20 · 2293 阅读 · 2 评论 -
AVL树怎么理解?
如何理解AVL左旋右旋?http://www.sohu.com/a/270452030_478315图解数据结构树之AVL树https://www.cnblogs.com/zhuwbox/p/3636783.html算法导论https://blog.csdn.net/u010385790/article/details/78441456先记录网站,后期总结...原创 2019-07-16 20:31:38 · 1581 阅读 · 0 评论 -
【C++】运算符重载示例一
11.1、11.2mytime0.h//mytime0.h -- 时间类重载#ifndef MYTIME0_H_#define MYTIME0_H_class Time{private: int hours; int minutes;public: Time(); Time(int h, int m = 0); void AddMin(int m); voi...原创 2019-08-12 11:10:11 · 1833 阅读 · 1 评论 -
【C++】C++学习建议、运算符重载
运算符重载运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。C++将运算符重载扩展到用户定义的类型两个数组相加for (int i = 0 ; i < 20 , i++) evening[i] = sam[i] + janet[i];表示数组的类,重载+运算符evening = sam + janet;...原创 2019-08-11 11:29:30 · 1536 阅读 · 0 评论 -
【C++】使用类实现抽象数据类型(Abstract Data Type, ADT)
类通常表示更加通用的概念ADT使用通用的方式描述数据类型,而没有引入语言或实现细节比如栈:创建空栈 从栈顶添加数据 从栈顶删除数据 栈是否满 栈是否空stack.h//stack.h -- 堆栈的类定义实现#ifndef STACK_H_#define STACK_H_typedef unsigned long Item;class Stack{publ...原创 2019-08-09 15:48:37 · 2590 阅读 · 0 评论 -
【C++】堆、栈、堆栈、队列的理解
1. 堆:什么是堆?又该怎么理解呢?①堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: ·堆中某个节点的值总是不大于或不小于其父节点的值; ·堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。②堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一...转载 2019-08-09 09:48:29 · 2126 阅读 · 0 评论 -
【C++】类作用域详解
目录1. 可以在不同类中使用相同的类成员名2. 不能从外部访问类成员,公有成员函数如此,要调用公有成员函数,必须通过对象3. 定义成员函数时必须使用作用域解析运算符4. 使用成员运算符(.)、简介成员运算符(->)或作用解析运算符(::)5. 作用域为类的常量5.1 第一种方式是在类中声明一个枚举5.2 第二种方式是使用关键字static:6 作用域内枚举...原创 2019-08-08 18:29:05 · 10643 阅读 · 0 评论 -
【C++】类的构造函数与析构函数笔记
目录0. 整体概述为什么要引入构造函数1. 声明和定义构造函数程序声明对象时,将自动调用构造函数1.1 成员名和参数名2. 使用构造函数2.1 显式调用构造函数2.2 隐式调用构造函数2.3 构造函数与new一起使用的方法3. 默认构造函数4. 析构函数什么时候调用析构函数呢?5 改进Stock类stock10.hStock10.cpp...原创 2019-08-06 14:26:00 · 1555 阅读 · 1 评论 -
【C++】this 指针和对象数组详解
目录1. 涉及到两个对象时,需要使用this指针2. 如何将两个要比较的对象提供给成员函数呢?3. 回顾const 成员函数4.const Stock & topval ( const Stock & s) const 解读5. topval如何实现?6. this是返回对象的地址,*this是对象程序实现stock20.husestock...原创 2019-08-08 10:55:38 · 2068 阅读 · 1 评论 -
【C++】如何使用类?C++如何设定输出小数位数?C++如何不让输出科学计数法?C++如何设定数字输出格式?
目录以一个股票为例如何使用类?注意看usestock00.cpp代码usestock00.cppstock00.hstock00.cppC++如何设定数字输出格式?看stock00.cpp这个show_pre()函数函数解读程序运行结果以一个股票为例stock00.cpp 是stock00.h类函数实现 usestock00.cpp就是主函数如何使...原创 2019-08-01 15:37:41 · 2400 阅读 · 0 评论 -
【C++】抽象和类(2)--如何实现类成员函数?
目录1实现类成员函数成员函数的定义有两个特殊的特征类方法的完整 名称包括类名类方法可以直接 访问私有成员!!!2 代码示例stock00.hstock00.cpp3. 代码解析3.1 成员函数说明3.2 内联方法3.3 方法使用哪个对象?请大家回顾第一讲:【C++】抽象和类(1)--OOP编程特性、类规范基本组成、接口是什么、类与结构的区别...原创 2019-08-01 10:51:41 · 2131 阅读 · 0 评论 -
【C++】抽象和类(1)--OOP编程特性、类规范基本组成、接口是什么、类与结构的区别
目录0 . 基本概念OOP特性:过程性编程:OOP编程:1. 抽象和类1.1 类型是什么指定基本类型完成了三项工作:1.2 C++中的类类规范由两个部分组成:什么是接口?1.3 stock00.h1.3.1.访问控制1.3.2 控制对成员的访问:公有还是私有类与结构的区别0 . 基本概念面向对象编程(OOP)是一种特殊的、设计程...原创 2019-08-01 10:27:46 · 1744 阅读 · 2 评论 -
【MFC】fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MF
出现以下错误:fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]> XYZoneChangeDlg.cpp静态链接...原创 2019-07-25 18:52:09 · 11244 阅读 · 2 评论 -
【C++】名称空间示例:一个小型程序的完全实现,深入理解程序结构!!!
目录这个程序包含三部分:namesp.hnamesp.cppnamessp.cpp运行结果:这个程序包含三部分:namesp.hnamesp.cppnamessp.cppnamesp.h//namesp.h #include<string>// 创造名称空间namespace pers{ struct Person { s...原创 2019-07-25 10:03:50 · 1468 阅读 · 0 评论 -
【C++】静态持续性、外部链接性、内部链接性如何理解
目录外部变量单定义规则:关键词extern程序示例运行结果:全局变量和局部变量外部变量链接性为外部的变量通常简称为外部变量,它们的存储持续性为静态,作用域为整个文件。外部变量在函数外部定义的,因此对所有函数而言都是外部的。外部变量也称全局变量(相对于局部的自动变量)。单定义规则:一方面,在每个使用外部变量的文件中,都必须声明它;另一方面,C++有“单定义...原创 2019-07-17 15:42:33 · 1818 阅读 · 2 评论 -
【C++】内存的存储方案与动态分配new的讲解
目录1. 基本知识什么是动态内存?编译器分配3种内存:2. new 运算符2.1 使用new运算符时的初始化2.2 new失败时如何处理?2.3. new:运算符,函数和替换函数2.4. 定位运算符new示例程序1. 基本知识什么是动态内存?使用new和delete(C语言中使用函数malloc( ))分配的内存,我们叫做动态内存。动态内存由new...原创 2019-07-19 16:13:25 · 1654 阅读 · 0 评论 -
【C++】名称空间:传统的C++名称空间+using namespace如何使用?using编译指令与using声明比较
目录名称空间1. 传统的C++名称空间1.1 声明区域(declaration region):1.2 潜在作用域(potential scope):1.3 作用域(scope):1.4 声明区域 示意图1.5 潜在作用域与作用域 示意图2. 新的名称空间特性2.1 using声明和using编译指令2.2 using 编译指令和using声明之比较...原创 2019-07-24 11:02:44 · 1508 阅读 · 0 评论 -
【C++】引用变量--1.如何创建引用变量
目录引用变量1.1 创建引用变量引用变量的程序示例程序运行结果引用变量引用是对已定义的变量的别名,比如一个人的大名和小名,这指的都是一个人。区别指针与引用变量1.1 创建引用变量比如要将rodents作为rats变量的别名,可以这样做:int rats;int & rodents =rats;注意,&这里不是地址运算符,而是类型标识...原创 2019-05-22 10:06:34 · 2757 阅读 · 0 评论 -
【C++】引用变量--4.将引用用于结构(核心+难点)
本节内容不好理解,需要反复看!原创 2019-05-31 10:34:35 · 1770 阅读 · 0 评论 -
《OpenCV3编程入门》第5章-学习笔记7--输入输出XML和YAML文件--详解代码示例
1.XML和YAML文件简介XML(eXtensible Markup Lauguage)是一种元标记语言,所谓的“元标记”就是开发者可以根据自身需要定义自己的标记。XML是一种语义/结构化语言,它描述了文档的结构和语义YAML(Ain’t a Markup Language)强调这种语言是以数据为中心的。YAML是一种可读性高,用来表示资料序列的格式总之,YAML试图用一种比...原创 2018-12-05 16:37:39 · 1686 阅读 · 0 评论 -
【C++】如何使用switch语句?switch语句如何配合枚举类型的使用?
使用enum配合switch的选项原创 2018-12-05 09:33:48 · 5068 阅读 · 0 评论 -
【C++】使用switch语句编写最简单的选项界面(如:破解软件)--(优秀的编程思想)
软件选项界面程序原创 2018-12-05 09:06:31 · 3373 阅读 · 0 评论 -
【C++】统计一段话中字母、数字、空格、标点、其他和总共,程序
巧用cctype原创 2018-11-30 21:09:28 · 3276 阅读 · 0 评论 -
【C++】程序接收用户输入int整型时,如何设定?(优秀的编程思想)
这里考察的是容错思想,用户输入总有不可思议的地方,如何事先规避才是王道!原创 2018-11-30 20:47:48 · 2239 阅读 · 0 评论