C++ 学习笔记
TechArtisan6
集思广益开眼界,处处留心皆学问。坚持你所热爱的,热爱你所坚持的,剩下的交给时间就好。
展开
-
C++关键字 const 用法
文章目录1 const 基本用法1.1 const与基本类型数据1.2 const与指针类型1.3 const与引用2 const 其他用法注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1038169331 const 基本用法1.1 const与基本类型数据1.2 const与指针类型注:...原创 2020-01-03 11:16:55 · 386 阅读 · 0 评论 -
C++ static关键字
文章目录1 static关键字(1) 变量不用static修饰(2) 变量使用static修饰2. static全局变量与普通的全局变量有什么区别 ?3. static局部变量和普通局部变量有什么区别 ?4. static函数与普通函数有什么区别?参考资料注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1027...原创 2019-10-24 09:16:36 · 284 阅读 · 0 评论 -
C++ 模板(1): 友元函数和友元类
文章目录1 友元函数代码示例2 友元类代码示例参考资料注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1007479941 友元函数函数定义在全局函数中,并且把这个函数声明为另外一个函数的友元函数,我们称之为友元全局函数。函数定义在类中,并且把这个类声明为另外一个类的为友元函数,我们称之为友元成员函数。(...原创 2019-09-11 20:47:53 · 784 阅读 · 0 评论 -
C++ 模板(2): 静态(static)
文章目录2 静态(static)代码示例参考资料注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1007642282 静态(static)静态有静态数据成员 和 静态成员函数对于静态数据成员,它并不依赖于对象,而是依赖于类。静态数据成员初始化,不需要加static关键字,如下图所示:静态数据成员...原创 2019-09-12 10:43:47 · 950 阅读 · 0 评论 -
C++ 模板(3): 运算符重载
文章目录3 运算符重载3.1 一元运算符重载3.1.1 负号运算符重载3.1.2 ++符号的重载代码示例(1) 负号运算符重载——成员函数(2) 负号运算符重载——友元函数(3) ++运算符重载——前置(4) ++运算符重载——后置3.2 二元运算符重载3.2.1 +运算符重载3.2.2 << 输出运算符重载3.2.3 [ ] 索引运算符重载代码示例(1) +运算符重载——成员函数(...原创 2019-09-12 17:13:35 · 541 阅读 · 2 评论 -
C++ 模板(4): 模板函数, 模板类 和 标准模板库(STL)
文章目录4 模板函数与模板类4.1 函数模板代码示例4.2 类模板代码示例5 标准模板库(STL)参考资料注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1007827234 模板函数与模板类4.1 函数模板如下图所示,函数除了数据类型不同,其他全部相同,这样写,太傅哦与繁琐,因此引出函数模板 。模板所...原创 2019-09-12 20:45:30 · 670 阅读 · 0 评论 -
sizeof() 与 strlen() 比较
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/101063934比较 sizeof(), strlen() .比较 int 和 char 大小.#include<iostream>using namespace std;int main(){ int Arr[20]; Arr...原创 2019-09-20 16:12:59 · 236 阅读 · 2 评论 -
C++ cin, cin.getline() 和 cinget() 获取字符串的区别
文章目录1 使用cin 获取字符串2 使用 cin.getline() 获取字符串3 使用 cin.get() 获取字符串4 总结注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1010747331 使用cin 获取字符串#include<iostream>using namespace std...原创 2019-09-20 19:31:43 · 589 阅读 · 1 评论 -
C++ 比较 int, char, float, double 的长度
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/101077946比较 int, char, float, double 的长度#include<iostream>using namespace std;int main(){ int Arr[10]; Arr[0] = 1; Ar...原创 2019-09-20 20:54:43 · 1902 阅读 · 0 评论 -
C++ 比较两个字符串或string是否相等[ strcmp() 和 compare() ]
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1010972191 如果要比较的对象是 char 字符串,则利用函数 strcmp(const char s1,const char s2)strcmp(const char s1,const char s2)当 str1 < str2 时,返回为负数...原创 2019-09-21 10:17:42 · 80685 阅读 · 3 评论 -
C++ 逗号运算符
C++提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。例如:1+2,3+4上式又称为 “顺序求值运算符” 。逗号表达式的一般形式为:表达式1, 表达式2逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如逗号表达式如下:(1)int x=(1+2,1+3);则x=4(2) int a; a = 1 + 2,...原创 2019-09-21 13:45:30 · 2928 阅读 · 0 评论 -
C++ 位运算符 OR(|), AND(&), XOR(^), 取反, 左移, 右移
文章目录1 | 运算符2 & 运算符3 ^ 运算符注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/101105913C++ 按位运算符 OR(|), AND(&), XOR(^)1 | 运算符OR(|) 对两个整数值进行操作,生成一个新的值。现将两个数写成二进制,然后将每位进行逻辑或操作(...原创 2019-09-21 14:42:23 · 10824 阅读 · 0 评论 -
C++ 条件运算符 (?:)
C++ 条件运算符 (?: )的通用格式如下:表达式1 ? 表达式2 :表达式3说明:如果表达式1为true,则整个表达式的值为 表达式2的值(即,冒号左边的值);如果表达式1为false,则整个表达式的值为 表达式3的值(即,冒号右边的值);C++中,条件运算符 (?: )是唯一需要3个操作数的运算符。下面举个简单的例子进行说明例如:(1) int a = 1; int ...原创 2019-09-21 15:03:57 · 15918 阅读 · 8 评论 -
C++ typedef 和define的区别
文章目录1 typedef 的用法(1) 基本类型(2) 结构体的使用**3) 混合使用**2 define 的用法3 typedef 和 define 的区别参考资料注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/1015420391 typedef 的用法在C/C++语言中,typedef常用来定义一个标...原创 2019-09-27 16:46:36 · 456 阅读 · 0 评论 -
C++ 构造函数抛出异常
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/101544928构造函数可以抛出异常么?析构函数可以吗?从语法上来说,构造函数可以抛出异常。析构函数不能 (C++标准指明析构函数不能、也不应该抛出异常。)。但从逻辑上和风险控制上,构造函数中尽量不要抛出异常。万不得已,一定要注意防止内存泄露。在C++构...原创 2019-09-27 17:06:56 · 828 阅读 · 0 评论 -
C++ 负数在内存中存储
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/101559642对于人类来说,整数中,负数就是在整数前面添加负号。而在计算机中,计算机内存中只存储0和1。那么计算机中,负数该如何存储?计算机中,有3个名词:原码、反码、补码 。内存中一律用补码来表示整数,正数的补码就等于它的原码,而负数的补码就是其反码加1 ...原创 2019-09-27 21:04:42 · 2402 阅读 · 1 评论 -
C++ 多态(1): 虚函数及实现原理
C++远征之多态篇视频教程 笔记 方便自己查阅和复习,温故而知新。目录1虚函数及实现原理2 代码示例13 代码示例2参考资料多态多态指相同对象接收到不同消息或不同对象收到相同消息时产生不同的动作。多态分为静态多态和动态多态。(1) 静态多态也称为早绑定。(2) 动态多态也称为晚绑定,必须以封装和继承为基础。1虚函数及实现原理(1...原创 2019-07-09 15:47:42 · 1267 阅读 · 4 评论 -
C++ 封装(4): 对象指针, const
C++远征之封装篇(下)视频教程 笔记 方便自己查阅和复习,温故而知新接着C++封装(3): 对象成员与对象数组, 深拷贝和浅拷贝 继续做笔记。目录3 对象指针3.1 对象指针代码示例3.2 对象成员指针代码示例3.3 this 指针代码示例4 const 再现江湖4.1 常对象成员和常成员函数代码示例4.2 常指针和常引用参考资...原创 2019-03-19 12:22:39 · 821 阅读 · 2 评论 -
C++ 封装(3): 对象成员与对象数组, 深拷贝和浅拷贝
C++远征之封装篇(下)视频教程 笔记 方便自己查阅和复习,温故而知新。目录1 对象成员与对象数组代码示例2 深拷贝和浅拷贝代码示例3 对象指针4 const 再现江湖参考资料1 对象成员与对象数组如下图所示,定义坐标类, 通过不同坐标可以描述一个 矩形。那么我们有两种方式去定义和访问它,如下图所示:那么在内存中,...原创 2019-03-18 20:26:09 · 1714 阅读 · 0 评论 -
VS 2017 安装后 第一个 C++ 测试程序
安装VS 2017 后 可以用下面的 C++ 程序作为测试:#include<iostream>int main(){ using namespace std; cout << "Come up and C++ me some time."; cout << endl; cout << "You wont't regert it...原创 2018-10-03 15:40:24 · 1517 阅读 · 0 评论 -
VS 2017 C++ 运行完程序后迅速关闭窗口(不让窗口一闪而过的方法)——解决办法
VS 2017中 程序运行完后,希望窗口继续保留。方法一在 return 0; 语句前面添加一句:system("pause"); 下面是测试程序;#include<iostream>int main(){ using namespace std; cout << "Come up and C++ me some time."; cout &l...原创 2018-10-03 15:51:14 · 17337 阅读 · 2 评论 -
VS 2017 C++ 显示屏幕窗口输入,并显示屏幕输出
使用 cin >> Variable name;//从键盘输入字符如果使用 一个 cin.get(); 在输入字符后,屏幕窗口会消失。这时候,需要两个 cin.get(); 语句如下程序所示:#include<iostream>int main(){ using namespace std; int carrots; cout <...原创 2018-10-03 20:17:16 · 8656 阅读 · 0 评论 -
VS 2017 C++ 简单的用户定义函数及调用
标准C库提供了140多个预定义函数,如果其中的函数能满足要求,则应调用这些函数(如求平方根函数,直接调用 sart(Variable name); 即可)。但有时候,用户需要编写自己的函数,尤其在设计类的时候。调用自己编写的函数 可分为:有返回值 函数 和 无返回值 函数;下面依次介绍:1、 定义无返回值函数,并调用;下面直接放代码,更直观。#include <i...原创 2018-10-03 21:29:48 · 9593 阅读 · 0 评论 -
VS 2017 C++ 编译器指出 cout(或 cin, endl) 是一个未知标志符——解决办法
在VS 2017 中编写的 main() 函数,运行,编译报错,编译器指出 cout(或 cin, endl) 是一个未知标志符(如下图所示)。 其原因是没有 名称空间编译指令,即,最常见的语句: using namespace std; // using 编译指令解决办法方法1:最简单的方法,也是最常见的方法。 直接添加语句 using namespace std;#...原创 2018-10-04 10:55:15 · 13480 阅读 · 0 评论 -
C++ 测量整型(int, short, long 和 long long ) 的长度
C++对整型short、int、long和long long的长度规则定义如下:- short 至少16位;- int 至少和short一样长;- long 至少32位,且至少和int一样长;- long long 至少64位,且至少和long一样长。可能这个地方比较难以理解,为什么C++的规则那么奇怪,什么叫至少呢?因为C++是一门跨平台的语言,对于不同的系统来说,整...原创 2019-02-27 08:31:50 · 10387 阅读 · 0 评论 -
C++ 中 #include后 尖括号 和 双引号 的区别
C++ 中 #include后 尖括号(< >)和双引号(" ")的区别区别:双引号"xxx.h",表示编译器先在用户的工作目录下搜索头文件,如果搜索不到则到系统默认目录下去寻找,所以双引号一般用于包含用户自己编写的头文件。如:#include "student.h" ,#include "XXXX.h" 。 尖括号<xxx.h>,表示编译器只...原创 2019-02-22 21:54:06 · 2646 阅读 · 0 评论 -
C++ 中 #ifndef #endif 指令 与 #pragma once 指令的区别
在学习C++中,编写头文件(XXX.h)时候,为了防止重复引用,会加入#ifndef #endif指令,这也是常见的,其格式如下:#ifndef SOMETHING_H_#define SOMETHING_H_ // code #endif // SOMETHING_H_实际编写头文件时,在VS 2017 中,新建头文件时,会自动出现: #pragma o...原创 2019-02-28 15:04:08 · 700 阅读 · 0 评论 -
C++ 中 new/delete 与 malloc/free的区别
(1) new/delete是运算符,只能在C++中使用,它可以重载; mallloc/free是C的标准库函数,在C/C++中都可以使用。(2)对于非内部的数据类型的对象而言,光用malloc/free是无法满足动态对象的要求的。对象在创建的时候需要执行构造函数,对象在消亡之前需要执行析构函数。而molloc/free是库函数而不是运算符,不在编译器的控制范围之内,...原创 2019-02-26 16:33:16 · 828 阅读 · 0 评论 -
C和C++的主要区别 和 C++面向对象的三大特征
1、C和C++的区别(1)C是面向过程的语言,是一个结构化的语言,考虑如何通过一个过程对输入进行处理得到输出; C++是面向对象的语言,主要特征是“封装、继承和多态”。封装隐藏了实现细节,使得代码模块化; 派生类可以继承父类的数据和方法,扩展了已经存在的模块,实现了代码重用; 多态则是“一个接口,多种实现”,通过派生类重写父类的虚...原创 2019-02-26 17:55:31 · 5560 阅读 · 0 评论 -
C++ 中 栈和堆的主要区别
(1) 管理方式:栈:编译器管理(栈 stack 存放函数的参数值、局部变量,由编译器自动分配释放);堆:程序释放,容易泄露(堆heap,是由new分配的内存块,由应用程序控制,需要程序员手动利用delete释放,如果没有,程序结束后,操作系统自动回收)。(2) 空间大小:栈:默认是1M;堆:可以看做没有限制。(3) 是否产生碎片:栈:没有碎片;...原创 2019-02-26 18:08:53 · 556 阅读 · 0 评论 -
C++ 继承(1): 继承方式(public, protected, private), 继承中的特殊关系(隐藏 , is-a)
C++远征之继承篇 视频教程 笔记 方便自己查阅和复习,温故而知新。目录1 c++ 继承简介代码示例2 继承方式总结3 继承中的特殊关系3.1 隐藏代码示例3.2 is-a代码示例4 多继承与多重继承5 虚继承参考资料1 c++ 继承简介通常,类库是以源代码的方式提供的,这意味着可以对其进行修改,以满足要求。然而,C++提...原创 2019-03-20 10:28:32 · 996 阅读 · 2 评论 -
C++ 继承(2): 多重继承, 多继承, 虚继承(virtual)
C++远征之继承篇 视频教程 笔记 方便自己查阅和复习,温故而知新。接着C++ 继承(1): 继承方式(public, protected, private), 继承中的特殊关系(隐藏 , is-a) 继续做笔记目录4 多继承与多重继承4.1 多重继承4.2 多继承代码示例5 虚继承代码示例参考资料4 多继承与多重继承4.1...原创 2019-03-20 22:59:49 · 4423 阅读 · 0 评论 -
C++ 封装(1): 类和对象
C++远征之封装篇(上) 视频教程 笔记 方便自己查阅和复习,温故而知新。目录1 类与对象简介2 类与对象初体验代码示例3 初始字符串类型代码示例4 属性封装的艺术代码示例5 类外定义6 对象的生死离别总结参考资料1 类与对象简介如下图所示,一个狗的信息和技能,可以称之为对象。当有了一大群狗的时候,需要建立一个表格,便于管理...原创 2019-03-18 10:36:00 · 975 阅读 · 1 评论 -
C++ 封装(2): 构造函数和析构函数
C++远征之封装篇(上)视频教程 笔记 方便自己查阅和复习,温故而知新。接着C++ 封装(1) ——类和对象 继续做笔记。目录6 对象的生死离别6.1 构造函数代码示例6.2 默认构造函数代码示例6.3 拷贝构造函数构造函数总结代码示例6.4 析构函数代码示例总结参考资料6 对象的生死离别对象是如何存储的?下面举一个例...原创 2019-03-18 14:22:23 · 858 阅读 · 0 评论 -
VS2017 C++ 代码片段 多行注释与取消注释
1、VS2017 代码片段 多行注释(1)选中要 注释的代码段;(2)按Ctrl + K 键;(3)再按Ctrl +C 键。2、VS2017 代码片段 取消注释(1)选中要 取消注释的代码段;(2)按Ctrl + K 键;(3)再按Ctrl +U 键。...原创 2018-10-03 15:20:40 · 20058 阅读 · 3 评论