C++
文章平均质量分 79
记录自己的学习C++知识点
嵌入式_Chen
共享、共赢、共进步,鉴证我们的成长!
展开
-
C++ 笔记11 | 运行时的类型信息
二十三 运行时的类型信息//了解1 typeid操作符#include typeid(类型/对象);//返回typeinfo对象,用于描述类型信息2 dynamic_cast操作符语法:目标变量 = dynamic_cast<目标类型>(源类型变量);适用场景:主要用于具有多态特性父子类指针或引用之间的显式类型转换.二十四 C++异常机制(exception)1 软件开发中的常见错误1)语法错误2)逻辑错误3)功能错误4)设计缺陷5)需求不符6)环境异常7)操作不原创 2021-05-09 23:47:57 · 678 阅读 · 1 评论 -
C++ 笔记10 | 多态(polymorphic)
二十二 多态(polymorphic)1 虚函数覆盖(函数重写)、多态概念1)如果基类中某个成员函数被声明为虚函数,那么子类中和该函数具有相同的成员函数就也是虚函数,并且对基类中版本形成覆盖,即函数重写。2)满足虚函数覆盖关系后,这时通过指向子类对象的基类指针或者通过引用子类对象的基类引用,去调用虚函数,实际被执行的将是子类中的覆盖版本,而不是基类中的原始版本,这种语法现象被称为多态。class Base{public:virtual void func(void){}//虚函数};clas原创 2021-05-09 23:22:42 · 364 阅读 · 4 评论 -
C++ 笔记9 | 继承2
回顾:1 子类对象的创建和销毁过程1)创建:分配内存->构造基类子对象->构造成员子对象->子类构造函数代码2)销毁:子类析构函数代码->析构成员子对象->析构基类子对象->释放内存2 子类的拷贝构造和拷贝赋值3 子类的操作符重载4 多重继承5 钻石继承和虚继承A(int m_data)/ B C\ /DA(int m_data)/ B C //class B/C:virtual public A{};\ /D //负责构造公原创 2021-05-09 17:04:04 · 89 阅读 · 0 评论 -
C++ 笔记8 | 继承1
二十一 继承(Inheritance)1 继承的概念 //了解通过一种机制描述类型之间共性和特性的方式,利用已有的数据类型定义新的数据类型,这种机制就是继承.eg: 人 类:姓名、年龄、吃饭、睡觉 学生类:姓名、年龄、吃饭、睡觉、学号、学习 教师类:姓名、年龄、吃饭、睡觉、工资、讲课 ... ------------------------------------------ 人 类:姓名、年龄、吃饭、睡觉 学生类 继承 人类:学号、学习 教师类 继承 人类:工资、讲课 ...原创 2021-05-09 16:24:56 · 166 阅读 · 0 评论 -
C++ 笔记7 |操作符重载
二十 操作符重载(operator)1 双目操作符重载 L#R1.1 计算类双目操作符: + - …1)表达式结果是右值,不能对表达式结果再赋值2)左右操作数既可以是左值也可以是右值3)两种具体实现方式–》成员函数形式(左调右参)L#R的表达式可以被编译器处理为"L.operator#®"成员函数调用形式,该函数的返回就是表达式结果。–》全局函数形式(左右都参)L#R的表达式可以被编译器处理为"operator#(L,R)"全局函数调用形式,该函数的返回就是表达式结果。注:通过frien原创 2021-04-10 14:59:34 · 224 阅读 · 0 评论 -
C++ 笔记6 | 静态成员 成员指针
十八 静态成员(static)1 静态成员变量1)语法class 类名{static 数据类型 变量名;//声明};数据类型 类名::变量名 = 初值;//定义和初始化2)普通成员变量属于对象,而静态成员变量不属于对象,静态变量内存在全局区,可以把静态变量理解为被限制在类中使用的全局变量.3)普通成员变量在对象构造时定义和初始化,而静态成员变量在类的外部单独定义和初始化。4)使用方法类名::静态成员变量;//推荐对象.静态成员变量;//和上面等价2 静态成员函数1)语法class原创 2021-04-10 14:55:59 · 884 阅读 · 0 评论 -
C++ 笔记5 | this指针 析构函数 拷贝构造和拷贝赋值
十五 this指针和常成员函数1 this指针1)类中的成员函数(包括构造函数、析构函数)都有一个隐藏的当前类类类型的指针参数,名为this。在成员函数中访问类中其它成员,其本质都是通过this来实现的。2)对于普通的成员函数,this指针就是指向该成员函数的调用对象;对于构造函数,this指针就指向正在创建的对象。3)大多数情况,可以忽略this直接访问类中的成员,但是在以下几个特殊场景必须要显式使用this指针:–》区分作用域–》从成员函数返回调用对象自身(返回自引用)//重点掌握–》从类原创 2021-04-10 14:53:16 · 276 阅读 · 0 评论 -
C++ 笔记4 | 构造函数和初始化列表
十四 、构造函数和初始化列表1 构造函数可以重载,也可以带有缺省参数//匹配string的无参构造函数string s;//匹配string的有参(const char*)构造函数 string s("hello");---------------------------------http://www.cplusplus.com/2 缺省构造函数(无参构造函数)1)如果类中没有定义任何构造函数,编译器会为该类提供一个缺省(无参)构造函数:–》对于基本类型成员变量不做初始化原创 2021-04-10 14:49:21 · 212 阅读 · 0 评论 -
C++ 笔记3 | 显示类型转换 类 对象 类的定义和实例化
十 C++引用(Reference)1 定义1)引用即别名,引用就是某个变量别名,对引用操作和对变量本身完全相同.2)语法类型 & 引用名 = 变量名;注:引用必须在定义同时初始化,而且在初始化以后所绑定的目标变量不能再做修改.注:引用类型和绑定目标变量类型要一致。2 常引用1)定义引用时可以加const修饰,即为常引用,不能通过常引用修改目标变量.const 类型 & 引用名 = 变量名;类型 const & 引用名 = 变量名;//和上面等价2)普通引用也可原创 2021-04-08 22:55:47 · 260 阅读 · 0 评论 -
C++ 笔记2 | 重载与缺省参数 内联 动态内存分配 引用
八、 C++的函数1、函数重载(overload)1)定义在相同作用域,可以定义同名的函数,但是参数必须有所区分,这样函数构成重载关系.注:函数重载和返回类型无关。eg:实现图形库中一些绘图函数//C语言 void drawRect(int x,int y,int w,int h){} void drawCircle(int x,int y,int r){} ... -----------------//C++语言 void draw(int x,int y,int w,int h)原创 2021-04-04 21:21:50 · 164 阅读 · 0 评论 -
C++ 笔记1 | 第一个C++程序 结构体 联合 枚举 string、bool类型
一、第一个C++程序#include<iostream>int main(void){ std::cout << "hello word!" <<endl; return 0;}1、编译方式1)gcc xx.cpp -lstdc++2)g++ xx.cpp //推荐2、文件扩展名1).cpp //推荐2).cc3).C4).cxx3、头文件#include –》C++中和I/O相关的类型、对象、函数都在在头文件中–》C++中大多数头原创 2021-04-04 20:10:46 · 559 阅读 · 0 评论