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