![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
gentleman_zh
这个作者很懒,什么都没留下…
展开
-
C++_深浅拷贝
一、何时调用拷贝构造函数1、对象在创建时使用其他的对象初始化 Person p(q); //此时复制构造函数被用来创建实例p Person p = q; //此时复制构造函数被用来在定义实例p时初始化p2、对象作为函数的参数进行值传递时 f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对象,与函数内的局部变量具有相同的...转载 2018-11-17 15:43:53 · 178 阅读 · 0 评论 -
C++_动态内存管理malloc/new、free/delete
一、相同两者都可以用来动态申请内存和释放内存;二、不同1.malloc/free是C/C++标准库的函数,new/delete是C++操作符。2.申请内存位置不同new操作符是从自由存储区上为对象动态分配内存空间的,malloc函数是从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念, 凡是通过new操作符进行内存申请的, 该内存称为自由存储区。 而自由存...原创 2019-04-10 10:50:42 · 262 阅读 · 0 评论 -
C++_4个与类型转换相关的关键字
static_cast,const_cast,reinterpret_cast,dynamic_caststatic_cast:特点:静态转换,在编译处理期间。应用场合:主要用于C++中内置的基本数据类型之间的转换,但是没有运行时类型的检测来保证转换的安全性。用于基类和子类之间的指针或引用之间的转换,这种转换把子类的指针或引用转换为基类表示是安全的;进行下行转换,把积累的指针或引用...转载 2019-04-01 17:18:25 · 209 阅读 · 0 评论 -
C++_智能指针
一、为何要使用智能指针1. 考虑下边的简单代码:int main(){ int *ptr = new int(0); return 0;}一不小心就忘了释放掉已不再使用的内存,从而导致资源泄漏(resoure leak,在这里也就是内存泄漏)。2. 考虑另一简单代码:int main(){ int *ptr = new int(0);...原创 2019-04-11 20:44:13 · 233 阅读 · 0 评论 -
STL_make_heap(), pop_heap(), push_heap()
make_heap()是生成一个堆,大顶堆或小顶堆make_heap(_RAIter,_RAIter) 默认生成大顶堆make_heap(_RAIter,_RAIter,_Compare) _Compare有两种参数,一种是greater(生成小顶堆),一种是less(生成大顶堆)push_heap()是向堆中插入一个元素,并且使堆的规则依然成立push_heap(_RAIter,_RA...转载 2019-04-08 18:08:58 · 428 阅读 · 0 评论 -
STL_常见问题
一.STL提供哪六大组件? 1.容器:序列式容器:array、vector、heap、priority_queue、list、slist、deque、stack、queue 关联式容器:set、map、multiset、multimap、hashtable、hash_set、hash_map、hash_multiset、hash_multimap2.算...转载 2019-04-09 10:45:40 · 427 阅读 · 0 评论 -
C++_static
1. static全局变量与普通的全局变量有什么区别 ? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。 全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。 这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制...原创 2019-04-09 18:08:52 · 140 阅读 · 0 评论 -
C++_inline
1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。2. inline使用限制inline的使用是有所限制的,inline只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如while、switch,并且...转载 2019-04-09 19:35:53 · 119 阅读 · 0 评论 -
C++_初始化列表
一、初始化列表定义构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。二、构造函数执行的两个阶段初始化阶段:所有类类型(class type)的成员都会在初始化阶段初始化,即使该成员没有出现在构造函数的初始化列表中。计算阶段:一般用于执行构造函数体内的赋值操作。三、为何使用初始化列表struct Test1...转载 2019-04-12 22:42:31 · 143 阅读 · 0 评论 -
C++_单继承&多继承&菱形继承
https://blog.csdn.net/m0_37925202/article/details/78539667转载 2019-04-17 13:56:26 · 126 阅读 · 0 评论 -
C++_读写TXT文件
将信息写入txt文件string filename = "points_txt/frame_" + to_string(i + start_idx) + ".txt";ofstream fout(filename.c_str(), ios::trunc); // 将点的信息写入文件, 先将文件清空if (!fout) { cout << "文件打开失败" << ...原创 2019-04-22 17:21:41 · 279 阅读 · 0 评论 -
C++_内存分配
一、一个C/C++编译的程序占用内存分为以下几个部分:栈区(stack):由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。 堆区(heap):一般由程序员自动分配,如果程序员没有释放,程序结束时可能有OS回收。其分配类似于链表。 全局区(静态区static):存放全局变量、静态数据、常量。程序结束后由系统释放。全局区分为已...原创 2019-04-10 10:29:25 · 133 阅读 · 0 评论 -
C++_模板
目录:函数模板 类模板 类模板与模板类1.函数模板:函数体相同函数都可以用函数模板,根据实参类型替换虚拟类型。int max(int a,int b){ return a>b?a:b;}char max(char a,char b){ return a>b?a:b;}#include <iostream>using nam...原创 2019-03-02 10:40:38 · 252 阅读 · 0 评论 -
C++_const关键字
Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、作用1.可以保护被修饰的东西,增强程序的健壮性。2.便于进行类型检查。const常量有数据类型,而宏常量没有数据类型。3.为函数重载提供了一个参考。4.可以节省空间,避免不必要的内存分配。const定义的常量在程序运行过程中只有一份拷贝,而#defin...原创 2019-02-20 19:44:57 · 125 阅读 · 0 评论 -
C++_万能头文件
#include <bits/stdc++.h>// C++ includes used for precompiling -*- C++ -*-// Copyright (C) 2003-2014 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This ...原创 2018-12-27 10:13:26 · 405 阅读 · 0 评论 -
C++_map和unordered_map
1.头文件 #include<map> #include<unordered_map>2.相关函数 http://www.cplusplus.com/reference/map/map/cend/ http://www.cplusplus.com/reference/unordered_map/unordered_map/ ...原创 2019-01-31 18:41:07 · 239 阅读 · 0 评论 -
C++_指针和引用的区别
https://blog.csdn.net/zhengqijun_/article/details/54980769转载 2019-02-05 20:42:35 · 133 阅读 · 0 评论 -
C++_nullptr和NULL 区别
https://www.cnblogs.com/Philip-Tell-Truth/p/6594632.html转载 2019-02-09 13:13:46 · 1876 阅读 · 0 评论 -
C++_预处理指令
https://www.cnblogs.com/zi-xing/p/4550246.html原创 2019-02-23 10:09:39 · 163 阅读 · 0 评论 -
C++_设计模式
1.单例模式2.工厂模式转载 2019-02-24 09:09:11 · 119 阅读 · 0 评论 -
C++_多态(虚函数)
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚...原创 2019-02-23 09:12:15 · 213 阅读 · 0 评论 -
C++_friend
https://blog.csdn.net/u012861978/article/details/52095607转载 2019-02-28 20:57:21 · 134 阅读 · 0 评论 -
C++_Google命名规范
最近写C++代码较多,总是为文件、变量和函数等的命名犹豫不决,主要还是没有一个规范来约束。Google 的C++规范号称世界上最优秀的编码规范,于是拿来研究下,已改善自己以后的工作,今天只先学习下它的命名规范。1.文件命名规则文件名全部小写,可以含下划线或连字符,按项目约定命名,且尽量保证文件名明确。比如:cmd_save_player_info_class.cc my_use_full_...原创 2019-03-05 09:16:08 · 435 阅读 · 0 评论 -
C++_explicit
https://www.cnblogs.com/rednodel/p/9299251.html转载 2019-02-25 22:33:36 · 127 阅读 · 0 评论 -
C++_多线程
一、基本概念说到多线程编程,那么就不得不提并行和并发,多线程是实现并发(并行)的一种手段。并行是指两个或多个独立的操作同时进行。注意这里是同时进行,区别于并发,在一个时间段内执行多个操作。在单核时代,多个线程是并发的,在一个时间段内轮流执行;在多核时代,多个线程可以实现真正的并行,在多核上真正独立的并行执行。例如现在常见的4核4线程可以并行4个线程;4核8线程则使用了超线程技术,把一个物理核模...原创 2019-04-23 20:11:34 · 274 阅读 · 1 评论