![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++笔记
ADream__
这个作者很懒,什么都没留下…
展开
-
类和对象(上)
c语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是基于面向对象的,关注的是对象,将一件事情拆分为不同的对象,靠对象的交互完成。一。类的引入c语言中,结构体只能定义变量,在C++中,结构体不仅可以定义变量,也可以定义函数class Student { void SetStudentInfo(const char* name, const ch...原创 2019-08-19 12:06:06 · 139 阅读 · 0 评论 -
c++ --- 类型转换
在学习c++类型转换之前,我们要先看一下c语言时学习的类型转换。c语言学过两种类型转换:(1)隐式类型转换(2)显示的强制类型转换void Test(){ int i = 1; //隐式类型转换 double d = i; printf("%d,%.2f\n",i,d); int* p = &i; //显示的强制类型转换 int address = (int)p...原创 2019-09-30 14:51:25 · 171 阅读 · 0 评论 -
c++ ---智能指针
为什么要使用智能指针?智能指针的作用就是管理一个指针,因为存在以下的情况:申请的空间在函数结束的时候忘记释放,造成内存泄漏。使用智能指针可以很大程度上避免这一问题,因为智能指针就是一个类,当超出了类的作用域之后,类就会自动调用析构函数,析构函数就会自动释放资源。所以析构函数的作用就是在函数结束时自动释放空间,不需要手动释放内存空间。一.RAII(1)RAII,也称为“资源获取就是初始化”,...原创 2019-09-29 19:38:34 · 136 阅读 · 0 评论 -
c++ --- 异常
在没学习c++之前,我们如果在程序中遇到异常错误,可能会用以下的处理方式1.终止程序,如assert,缺陷:用户难以接受,如果发生内存错误,除0错误就会终止程序。2.返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是把错误码放到errno中,表示错误。1.c++异常异常是一种处理错误的方式。当一个函数发现自己无法处理的错误的时候,就会抛出异常,让函数直接或者...原创 2019-09-29 14:48:17 · 233 阅读 · 0 评论 -
c++ --- 多态
多态1.概念:多态就是多种形态。具体来说就是完成某个行为,当不同的对象去完成的时候会产生不同的状态。2.构成条件(1)被调用的对象必须是指针或者是引用。(2)被调用的对象必须是虚函数,且完成了虚函数的重写。(3)虚函数:就是在类的成员啊哈桑农户的起那面加上virtual关键字(4)虚函数的重写:派生类中有一个基类完全相同的虚函数,我们就称子类的虚函数重写了基类的虚函数,...原创 2019-09-28 18:33:05 · 126 阅读 · 0 评论 -
c++ 继承
一.继承1.继承的概念继承是面型对象程序设计使代码可以复用的最重要的手段,它允许使用者在保持原有类特性的基础上进行扩展,增加功能,这样可以产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。2.继承的格式class Person{ public: void Print() { std::cout << "id" <...原创 2019-09-28 14:34:03 · 228 阅读 · 0 评论 -
c++ --- list
1.list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2.list的底层是双向链表结构,双向链表中每一个元素存储在互不相关的独立结点中,在节点中通过指针指向其前一个元素和后一个元素。3.list与forward_list相似,最主要的不同在于forword_list是单链表,只能朝前迭代,让其简单高效。4.与其他序列式容器相比,list通常可以在任...原创 2019-09-26 19:34:19 · 447 阅读 · 0 评论 -
c++ --- vector
一.vector的介绍和使用(1)vector是可变大小数组的序列容器。(2)就像数组一样,vector也采用连续存储空间来储存元素。也就意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。(3)本质上讲,vector使用动态分配数组来存储它的元素。当新元素插入的时候,这个数组需要被重新分配大小,为了增加存...原创 2019-09-26 18:42:24 · 171 阅读 · 0 评论 -
c++ --- STL --- string
c++最为重要的一大组成部分就是STL,它不仅仅是一个可复用的组件库,而且是一个包罗数据结构和算法的软件框架。STL的六大组件:一:序列式容器, 有string,vector, list, deque二 : 关联式容器, 有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap三: 其...原创 2019-09-25 18:19:18 · 161 阅读 · 0 评论 -
C++模板
模板是泛型编程的基础,泛型编程即以一个独立于任何特定类型的方式编写代码。模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具,所有模板就是将本来应该我们做的重复的事情交给了编译器下面,我们先看一个例子,了解一下什么是模板?一.函数模板1.格式:template <typename T1 , typename T2, … typename Tn>...原创 2019-09-15 15:27:17 · 441 阅读 · 0 评论 -
C++单例模式
单例模式是面试官非常爱考的一种设计模式。当我第一次接触的时候,感觉这是个什么鬼?不过自己还是坚持下来,下面是我关于这个模式的一些思路和想法。1.单例模式的概念:通俗点来说,一个类只能创建一个对象即为单例模式。在很多时候,为了更安全,可靠的访问某个服务器的话,就必须要设计出一个独立的对象去访问它,而其他对象则不能够进行访问。单例模式的实现主要有两种方式:饿汉模式和懒汉模式。2.饿汉模式...原创 2019-09-08 12:09:44 · 237 阅读 · 0 评论 -
C++内存管理
1.C++的内存分布int value = 1;static int staticvalue = 1;void Test(){ static int staval = 1; int val = 1; int num1 = {1,2,3,4}; char char2[] = "abcd"; char* char3 = "abcd"; int* ptr1 = (int*)mall...原创 2019-09-05 18:28:17 · 140 阅读 · 0 评论 -
类和对象(下)
1.构造函数的初始化#include<iostream>using namespace std;class Student{ public: Student(int id,string name) { _id = id; _name = name; } Private: int _id; int _name;};对于上...原创 2019-08-22 13:34:33 · 128 阅读 · 0 评论 -
C++入门(知识点)
1.C++关键字asm do if return try continueauto double inline short typedef forbool dynamic_cast int signed typeid publicbreak else long sizeof ...原创 2019-01-14 16:11:49 · 281 阅读 · 1 评论 -
类和对象(中)
一.类的6个默认成员函数初始化:构造函数完成初始化工作清理:析构函数完成清理工作拷贝:拷贝构造是用同类对象初始化创建对象复制:赋值重载主要是把一个对象赋值给另一个对象取地址重载:主要是普通对象和const对象取地址,这两个很少会自己实现二.构造函数1.概念:构造函数是一个特殊的成员函数,名字与类名相同,船舰类类型对象的时候由编译器自己调用,保证每个对象都有一个合适的初始值,并...原创 2019-08-19 17:19:25 · 128 阅读 · 0 评论 -
vim编译器的使用和gdb调试程序
一.vim编译器的使用vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且 还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。1.vim的基本概念(三种模式)(1)正常/普通/命令模式控制屏幕光标的移动。字符。字或行的删除,移动复制某区段及进入i...原创 2019-10-02 15:32:51 · 799 阅读 · 0 评论