![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++基础
ziggy7
这个作者很懒,什么都没留下…
展开
-
c++基础视频笔记 9 类型转换 + 异常
类型转换静态转换static_cast使用:static_cast< 目标类型>(原始数据)功能:可以进行基础数据类型转换,父与子类型转换,没有父子关系的自定义类型不可以转换动态转换dynamic_cast区别:更加严格功能:不可以转换基础数据类型,父转子不可以,子转父可以,发生多态时,可以父转子常量转换const_cast注意:不能对非指针或者非引用进行转换功能:改变常量性重新解释转换 reinterpret_cast功能:很多都能转,但是不安全,比较鸡肋,不推荐异常原创 2020-07-14 10:09:49 · 142 阅读 · 0 评论 -
c++基础视频笔记 8 泛型编程
基本使用声明前:加template < class / typename T> 告诉编译器紧跟的代码里出现T不要报错声明:mySwap( T &a T &b ) 类型也需要传入 ,类型参数化调用: 自动类型推导:myswap(a,b) 自动类型推导 按照a、b的类型来替换T 显示指定类型:myswap<int>(a,b)函数模板与普通函数区别:普通函数可以进行隐式类型转换,模板不可以调用规则: c++编译器有限考虑普通函数,func<>(原创 2020-07-13 17:19:42 · 94 阅读 · 0 评论 -
c++基础视频笔记 7 多态
多态概念父类的引用或指针指向子对象分类●静态多态:函数重载静态联编:地址早绑定,编译阶段绑定好地址,不能根据对象决定调用的函数●动态多态:虚函数(父类使用虚函数,发生了多态,子类必须重写虚函数)动态联编:地址晚绑定,运行时候绑定好地址原理 父类中有虚函数后,内部结构就发生了改变,多了一个vfptr(虚函数指针)指向vftable(虚函数表) 子类会继承父类的vfptr和vftable(不是同一个,构造函数中会将虚函数表指针指向自己的虚函数表) 子类重写(不是重载,重写所有东西都一样)会原创 2020-07-13 11:25:58 · 130 阅读 · 0 评论 -
c++基础视频笔记 6 继承
继承的引出原因:很多时候代码有公共部分实现:基类公共的,具体子类实现不同的内容继承方式不管公有继承 保护 还是私有 基类中的私有属性 ,都不可以继承下去●公有继承父类中的protected 在子类中是 protected父类中的public 在子类中是 public●保护继承父类中的protected 在子类中是 protected父类中的public 在子类中是 protected●私有继承父类中的protected 在子类中是 private父类中的public 在子类中是 p原创 2020-07-12 20:31:34 · 100 阅读 · 0 评论 -
c++基础视频笔记 5 符号重载
加号运算符重载原因:如果想让自定义数据类型 进行+运算,那么就需要重载 + 运算符使用:在成员函数 或者 全局函数里 重写一个+运算符的函数,函数名 operator+ () {} a+b即 operator+(a,b)左移运算符重载原因:想要cout << 直接对Person自定义数据类型 进行输出使用: 写到全局函数中 ostream& operator<< ( ostream & cout, Person & p1 ) {}原创 2020-07-11 10:41:55 · 155 阅读 · 0 评论 -
c++基础视频笔记 4 类相关知识
静态成员变量和静态成员函数●静态成员变量:注意: 编译阶段分配内存 所有对象共享同一个数据 有权限控制,private通过类名类外初始化访问: 可以通过对象访问,也可以通过类名访问使用: 类内声明,类外初始化●静态成员函数:注意: 可以访问静态成员变量,不可以访问普通成员变量(静态成员变量是共享的,静态成员函数不能区分是哪个对象的普通对象) 没有this指针,可以被pthread_create调用(见线程池文章) 有权限控制访问: 可以通过对象访问,也可以通过类名访问单例模原创 2020-07-10 16:14:35 · 105 阅读 · 0 评论 -
c++基础视频笔记 3类相关知识
对象的初始化和清理●构造函数:没有返回值 没有void,类名相同,可以发生重载,可以有参数●析构函数:没有返回,没有void ,函数名称: ~类名,不可以发生重载,不可以有参数●系统如何调用:系统会默认调用 构造函数和析构函数,而且只会调用一次如果程序员没有提供构造和析构,系统会默认提供,空实现构造函数的分类及调用●按照参数分类无参构造(默认构造) 有参构造●按照类型分类普通构造函数 拷贝构造函数●无参构造写法 和调用Person p1 ; 注意不能写 Person p1() ,原创 2020-07-08 20:11:27 · 142 阅读 · 0 评论 -
c++基础视频笔记 2函数相关基本知识
内联函数●给编译器一个建议,加上关键字,编译器不一定按照内联处理●不加关键字,也许编译器还偷摸的给你加inline●成员函数 默认加上inline关键字https://blog.csdn.net/qq_18343569/article/details/83755202●函数声明加了关键字,函数实现也要加inline关键字默认参数●实现:void func(int a = 10)●注意:如果有一个位置有了默认值,那么从这个位置开始,从左往右都必须有默认值函数声明和实现 只能有一个有默认值原创 2020-07-08 16:19:19 · 99 阅读 · 0 评论 -
c++基础视频笔记 1基础知识
作用域运算符全局作用域,直接加::命名空间创建命名空间namespace 名称{},同名命名空间创建多次会合并其中内容无名命名空间相当于static命名空间下可以放函数、变量、结构体、类实现/调用其中的内容要加作用域运算符命名空间必须定义在全局作用域下命名空间下可以嵌套命名空间,A::B::using未看c++对c语言增强●全局变量检测增强//c语言可以,c++不行int a;int a = 10;●函数检测:参数类型检测、返回值检测、传参个数检测●malloc返回voi原创 2020-07-08 15:08:08 · 118 阅读 · 0 评论