C++
hsiao__fei
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【c++】虚基类
虚基类在说明其作用前先看一段代码class A{public:int iValue;};class B:public A{public:void bPrintf(){cout<<“This is class B”<<endl;};};class C:public A{public:void cPrintf(){cout<<“This...原创 2019-12-25 15:34:09 · 277 阅读 · 0 评论 -
【c++】多态/虚函数/纯虚函数/抽象类/成员函数指针/重载/隐藏/覆盖的区别/实现背包
多态:对同一消息有不同响应; 分为静态多态和动态多态: 静态多态:编译期多态,看指针类型; 基类A 派生类B A,B里有同名的函数fun B b(); A* = &b; A->fun(); 调用的是A的fun,不会调用b的fun 动态多态:运行时多态,看内存; A里的 fun 前面加了 virtual, 前面...原创 2019-12-25 15:23:23 · 295 阅读 · 0 评论 -
【c++】实现string类
注意:#include string类#include<string.h> 字符串和内存的一系列函数#pragma once/*1.数据成员(动态申请char类型的内存)2.四大默认成员函数*/class String{public: String(const char *str = nullptr);//构造字符串时:传入"" String(const S...原创 2019-12-25 14:58:34 · 170 阅读 · 0 评论 -
【c++】继承
C++面向对象的三大特性:封装/继承/多态继承(是):产生了一个新类,新类不仅具有父类的特性,还具有属于自己的特性;1.继承的定义: class 子类名 : 派生权限1 父类名1,派生权限2 父类名2… { 访问权限: 成员; }; 2.父类成员被子类继承后在子类中的访问权限:父类成员访问权限: public protected pri...原创 2019-12-24 20:27:52 · 211 阅读 · 0 评论 -
【c++】内联函数/友元函数/友元类/运算符重载
短小(频繁,且没有循环体)的功能:1.内联函数: 特点:1.在函数名前加inline关键字; 2.以空间换取时间,编译阶段整个函数体替换调用部分;2.宏定义: 1.对变量宏定义: #define 宏名 值 2.带参函数的宏定义 #define 函数名(形参表:不需要类型) 函数体 1.整体思维 2.不进行类型检测 ...原创 2019-12-24 20:20:42 · 344 阅读 · 0 评论 -
【c++】类的特殊的成员(静态成员和常量成员)
特殊的成员:1.const成员: 1.const数据成员: 特点:1.必须使用成员初始化列表初始化 2.不能修改const成员的值 2.const成员函数: 特点:1.返回值类型 函数名(形参表)const;//声明和定义 2.函数内的this指针变为常量指针; (当前对象(所有的数据成员)不能改变,其他都...原创 2019-12-23 20:29:19 · 377 阅读 · 0 评论 -
【c++】类
1.C语言:面向过程,以函数为核心; C++语言:面向对象,以类为核心; 2.类的概念:一类具有相同属性和行为的事物的封装; 类的三大特性:封装/继承/多态; 学生:属性(有):姓名/身高/体重等; 行为(能):吃饭/考试/挂科等; 英雄:属性(有):血量/等级/攻击力/钥匙数量等 行为:移动/打怪/升级等 地图:属性(有)...原创 2019-12-23 18:09:35 · 224 阅读 · 0 评论 -
【c++】结构体/联合/枚举
1.数据类型: 1.整型/浮点型/字符型/布尔型 2.数组 3.指针:普通指针/数组指针/函数指针 4.引用 (地图/英雄/玩家/怪物/NPC/药品:)2.自定义类型:结构体(struct)/联合(union)/枚举(enum)3.结构体类型的定义: struct 结构体类型名 //结构体类型名:首字母大写 { 属性1;//属性:类型 变量名;(符合"有"字) ...原创 2019-12-23 15:55:31 · 243 阅读 · 0 评论 -
【c++】函数/内联函数/函数的重载/缺省/指针函数/函数指针
1.函数:封装一个功能模块;例如:求字符串长度/比较两个数的大小2.定义: 返回值类型 函数名(形参表)//形参表:类型1 变量名1,类型2 变量2…类型n 变量名n { 函数体; }//不能省略 形参表:原材料 返回值:成品根据返回值: 1.无返回值(返回值类型:void) 1.可以不写 2.return;//(表示函数结束) 2.带返回值(返回值类型:整型/浮点...原创 2019-12-22 19:55:18 · 312 阅读 · 0 评论 -
【c++】字符串相关函数的实现
strcpy:#include<assert.h>char* strcpy(char* to,const char* from){ //1.检测to和from是否为空 //断言:当表达式的结果为0时,程序停止,为1时,继续执行下面的语句 assert(to != nullptr && from != nullptr); //2.保存to原先的值 char...原创 2019-12-21 17:27:47 · 183 阅读 · 0 评论 -
【C++】指针和引用
1.引用:给一个变量取别名,与这个变量共享一段内存; 1.在定义时:类型& 别名 = 变量名; (2.单目运算符:&取地址 3.双目运算符:按位与) 特点:1.必须初始化 2.不能改变指向 3.既可以作为左值,也可以作为右值;2.指针和引用的区别: 1.指针可以不初始化,引用必须初始化; 2.指针可以改变指向,...原创 2019-12-21 11:48:16 · 143 阅读 · 0 评论 -
【c++】常量指针/指针常量/typedef
1.常量指针:表示指针指向一个被const修饰的变量; 两种写法: 1.const 类型 * 指针名;//例如const int* p; 2.类型 const * 指针名;//例如int const* p; 赋值: 1.const变量的地址 2.非const变量的地址 特点: 1.指向的内容(const)不能修改; 2.指向可以修改...原创 2019-12-20 20:16:48 · 194 阅读 · 0 评论 -
【c++】指针与内存区域划分/空指针
内存区域的划分:(1.存储的元素 2.生命周期(内存什么时候存在 什么时候回收) 3.作用域)----------------------------------1.常量区:存储字面值常量(例如1,100,3.14,‘a’,‘1’)和字符串(例如:“abcd”) 从程序开始时系统分配内存,程序结束时系统回收内存;----------------------------------2.静...原创 2019-12-20 19:44:41 · 811 阅读 · 0 评论 -
【c++】数组指针
1.数组指针类型:1.依然是指针类型 2.指向数组2.数组指针的定义: 指向的数组的元素类型 (*数组指针名)[数组大小];3.数组指针的内存:4个字节4.数组指针的初始化和赋值: 1.一维数组名及以上的地址赋值; 2.二维数组名及以上; int n[3][4]; //n[0](int*):大小为4 n[0] = &n[0][0] //n(数组指针):n =...原创 2019-12-20 17:24:15 · 470 阅读 · 0 评论 -
【C++】指针/字符型指针/指针的运算/大小端
1.指针的概念:为了方便访问内存中的内容,给每一个内存单元编号,我们把这个编号称为地址,也就是指针. (1.指针 = 地址 2.指针也是一种数据类型)2.指针变量的定义: 数据类型 变量名; (指向的类型 *) 变量名;3.指针变量的内存: 任意类型的指针占4个字节,以8位十六进制打印:例如000000ff4.指针的初始化以及赋值: 1.用指向类型数据的地址赋值;&a...原创 2019-12-18 20:31:59 · 630 阅读 · 0 评论 -
【c++】二维数组
二维数组:一类具有相同数据类型元素的行列集合;二维数组的定义:元素类型 数组名[行数][列数];(行数/列数:常量表达式)二维数组的内存:1.内存大小:元素所占字节数 * 行数 * 列数2.内存分布:连续的,按行存储;二维数组的初始化:1.{{},{},{}},可以给部分元素赋值2.{1,2,3,4,5,6,7}; 1.按行存储 2.可以省略行数不写,不能省略列数, ...原创 2019-12-17 20:26:58 · 270 阅读 · 0 评论 -
【C++】冒泡排序/插入排序/选择排序/快速排序
int n[5]; for (int i = 0; i < 5;i++) { cin >> n[i]; } //冒泡排序 for (int i = 1; i <= 4;i++)//轮数 { for (int j = 0;j <= 3 - i;j++)//次数//n[3] n[4] { //相邻两元素进行比较 if (n[j] >...原创 2019-12-17 19:54:50 · 178 阅读 · 0 评论 -
【c++】基本数据类型/常量与变量/进制转换/数据溢出
转义字符:\字符(特定的含义\n 换行\r 回车\t 水平制表符\反斜杠code格式:%字符(输出的格式) %s 字符串 %d 整型 %o 八进制 %x %X 十六进制常量:程序中不能改变的量,比如1 3.14 ‘a’ “abcd”变量:程序中可以改变的量,定义: 数据类型 变量名;变量名:合法的标识符;(首字母小写)合法的标识符:1.以字母(a-z大小写...原创 2019-12-17 18:59:32 · 333 阅读 · 0 评论 -
【C++】题目
unsigned char a = 0xA5;//八进制和十六进制化为二进制(补码形式)//二进制原码:10100101//二进制反码:01011010(无符号)//二进制补码:01011011//整型提升:00000000 00000000 00000000 01011011// ~a: 11111111 11111111 11111111 10100100//~a>...原创 2019-12-16 00:19:48 · 413 阅读 · 1 评论 -
【C++】数组
1.数组:一类具有相同类型元素的集合。2.数组的定义: 元素类型 数组名[数组大小]; 数组的大小:必须是常量; 1.字面值常量 (10 5) 2.被const修饰的变量:const 数据类型 变量名; 特点:1.必须初始化 2.只读,不可以修改 3.宏定义(写在函数外):#define 宏名 值 (所有使用到宏名的地方都用值替换(宏替换))3.数组的内存: ...原创 2019-12-15 03:03:59 · 209 阅读 · 1 评论 -
【C++】基础
C++基础1.自增自减运算符:++ – 前置: ++a 先自增再运算 后置: a++ 先运算再自增 后置优先级高于前置int i = 0;++i++;//结合性是从右到左 编译会出错前置效率高于后置(后置需要保存原来的值 运算后 再把保存的值赋给a)2.关系运算符 > < >= <= == !=3.逻辑运算符 &&逻辑或, ...原创 2019-12-14 22:05:53 · 395 阅读 · 0 评论
分享