
C++
carl_2018
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C++】C++入门知识总结
1.C++关键字(C++98) 2.命名空间 在C/C++中,变量、函数、和类都是大量存在的,这些变量、函数和类的名称都将存在于全局作用域中,可能会导致很多冲突。使用命名空间对标识符的名称进行本地化,以避免命名冲突或名字污染。一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。 定义命名空间 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然...原创 2019-06-15 18:01:31 · 180 阅读 · 0 评论 -
【C++】异常
1.C++异常概念 异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常.catch 关键字用于捕获异常,可以有多个catch进行捕获。 try: try 块中的代码标识将被激活...原创 2019-08-02 09:40:13 · 177 阅读 · 0 评论 -
【C++】C++的IO流
流是什么 “流”即是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且具有方向性的数据(其单位可以是bit,byte,packet )的抽象描述 C++ 流是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。这种输入输出的过程被形象的比喻为“流” “流”的特性是:有序连续、具有方向性 为了实现这种流动,C++定义了I/O...原创 2019-07-26 23:24:25 · 225 阅读 · 0 评论 -
总结:C++中引用和指针的区别
引用 引用不是新定义一个变量,而是给已经存在的变量取一个别名,编译器不会给引用变量开辟新的空间,它和它的引用变量共用同一块内存空间。 类型& 引用变量名(对象名) = 引用实体 void func() { //引用类型必须和引用实体是同种类型 int a = 10; int& ra = a; //定义引用类型 printf("%p\n", &am...原创 2019-07-31 16:14:23 · 259 阅读 · 0 评论 -
【C++】多态
多态,多种形态,去完成某个行为,当不同的对象去完成会产生不同的形态。 1.多态的定义及实现 多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。如student继承了people。person对象买票全价,student对象买票半价。在继承中构成多态要两个条件: 调用函数的对象必须是指针或者引用 被调用的函数必须是虚函数,且完成了虚函数的重写 2.虚函数 1)什么是虚函数 在类...原创 2019-07-30 22:43:05 · 136 阅读 · 0 评论 -
【C++】智能指针
1.RAII RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。 在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源。这样做的好处是: 不需要显式地释放资源。 采用这种方式,对象所需的资源在其生命期内始终保持有效。...原创 2019-08-03 09:41:02 · 194 阅读 · 0 评论 -
总结:malloc/free和new/delete的区别
malloc/free和new/delete的区别 malloc/free和new/delete的共同点是: 都是从堆上申请空间,并且需要用户手动释放。 不同的地方是: malloc和free是函数,new和delete是操作符 malloc申请的空间不会初始化,new可以初始化 malloc申请空间时,需要手动计算空间大小并传递,new只需在其后跟上空间的类型即可 malloc的返回值为voi...原创 2019-07-21 22:48:45 · 166 阅读 · 0 评论 -
【C++】C++的内存管理
一、C++的内存管理 C++通过new和delete操作符进行动态内存管理。 new/delete操作内置类型 void Test() { // 动态申请一个int类型的空间 int* ptr1 = new int; // 动态申请一个int类型的空间并初始化为10 int* ptr2 = new int(10); // 动态申请10个int类型的空间 int* ptr3 = ...原创 2019-07-20 17:55:47 · 196 阅读 · 0 评论 -
【C++】类和对象(下)
一、再谈构造函数 1.1 构造函数体赋值 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。构造函数体中的语句只能将其称作为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。 1.2 初始化列表 初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。 class Date { p...原创 2019-07-17 10:53:51 · 182 阅读 · 0 评论 -
【C++】类和对象(6个默认成员函数)
如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情况下,都会自动生成下面6个默认成员函数。如下: 一、构造函数 构造函数的主要任务而是初始化对象。并且在对象的生命周期内只调用一次。函数名与类名相同,且无返回值。 class Date { public: // 1.无参构造函数 Date() {} // 2.带参构造函数 Date(int ye...原创 2019-07-16 18:56:13 · 198 阅读 · 0 评论 -
【C++】模板(函数模板和类模板)
泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础,模板分为函数模板和类模板。 一、函数模板 1.概念:函数模版代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定函数类型模板。 2.格式: template<typename T1, typename T2,…typename Tn> 返回类型 函数名(参数列表){} te...原创 2019-07-18 19:38:16 · 178 阅读 · 0 评论 -
【C++】类和对象(上)
类与对象的初步认知 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++ 是面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。 类的定义 class className { //类体:由成员函数和成员变量组成 }; // 分号不能丢 class...原创 2019-07-16 18:50:34 · 162 阅读 · 0 评论 -
【C++】map和set
map和set是树形结构的关联式容器,使用平衡搜索树(红黑树)作为其底层结果,容器的元素是一个有序的序列。关联式容器是用来存储数据的,里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器的效率更高。 键值对 键值对,用来表示具有一一对应关系的一种结构,该结构中一般包含两个成员变量key和value,key表示键值,value表示和key对应的信息。 map和set...原创 2019-08-14 20:32:06 · 1318 阅读 · 0 评论