![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 56
小狮子辛巴
这个作者很懒,什么都没留下…
展开
-
c与c++的区别(一)
1、带有默认值的函数只能给函数从右向左的形参带默认值int sum(int a,int b=20){ return a+b;}int main(){ int a=10; int b=20; sum(a,b); sum(a) //带默认值 }注意:(1)申明时给默认值,定义时没有给默认值也可以,即默认值无...原创 2018-08-04 20:46:19 · 108 阅读 · 0 评论 -
C++中的纯虚函数
原文转载:https://blog.csdn.net/ithomer/article/details/6031329C++中的纯虚函数在C++中的一种函数申明被称之为:纯虚函数(pure virtual function).它的申明格式如下:class CShape{public: virtual void Show()=0;};注意红色部分,在普通的虚函数后...转载 2018-09-12 09:46:21 · 14398 阅读 · 0 评论 -
大小端判断
大小端的概念:大端:低地址存放高字节数小端:低地址存放低字节数以数字 0x12345678来说大端低地址 ---------------高地址0x12 | 0x34 | 0x56 | 0x78小端低地址 --------------高地址0x78 | 0x56 | 0x34 | 0x12 如何判断是大端还是小端1、利用强制转换来判断bool I...原创 2018-09-11 18:06:06 · 438 阅读 · 0 评论 -
函数调用堆栈
一、堆和栈 (1)首先要清楚的是程序对内存的使用分为以下几个区: 1、 栈区(stack):由编译器自动分配和释放,存放函数的参数值,局部变量的值等。操作方式类似于数据结构中的栈。栈用于维护函数调用的上下文,离开了栈函数调用就没法实现。 2、 堆区(heap):一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。与数据结构中的堆是两码事,分配方式类似于链表。堆是用来容纳应用...转载 2018-09-01 09:52:31 · 983 阅读 · 0 评论 -
设计一个不能被继承的类
设计一个不能被继承的类:要求是该类可以像普通类一样正常使用,但是不能被继承先看一下第一个代码:class Base{private: Base(int val=0):_val(val){}private: int _val;};class Dreive:public Base{public: void print() { c...原创 2018-08-21 23:55:04 · 1187 阅读 · 0 评论 -
C++---new和malloc的区别
本文从用法和区别两方面介绍new和malloc1、malloc/free和new/delete用法:int main(){ int *p=(int *)malloc(sizeof(20));//指向整型的指针p指向一个大小为100字节的内存的地址 assert(p!=NULL);//申请空间一般都要断言是否成功 int arr[]={12,23,34,45,5...原创 2018-08-21 23:19:44 · 220 阅读 · 0 评论 -
C++11新特性---右值引用(二)
本文摘自博客:https://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/index.html1、新特性的目的右值引用是C++11中引入的新特性,它实现了转移语义和精确传递 消除两个对象交互式不必要的对象拷贝,节省存储资源,提高效率;2、左值和右值的定义左值是非临时对象,可以取地址,可以被赋值;右值是临时对象,只在...转载 2018-08-20 20:20:50 · 206 阅读 · 0 评论 -
C++11新特性---右值引用&类型推导(一)
本篇文章摘自博客:https://blog.csdn.net/hzyong_c/article/details/8273884一、右值引用,move语义1、左值(lvalue)和右值(rvalue)的概念C++11引入了右值引用。Type&&,const Type&&,区别于之前的&标识的左值引用。左值:在表达中,表达式结束时不会消失,如ob...转载 2018-08-20 17:23:50 · 427 阅读 · 0 评论 -
构造函数、析构函数抛出异常的问题
首先下说一下结论:构造函数可以抛出异常 析构函数不能抛出,也不应该抛出异常。 构造函数为什么可以抛出异常?用new创建对象时要经历两个操作:分配内存和调用构造函数。若是在new分配内存时出错,则会抛出bab_alloc异常;如在调用构造函数初始化时出错,new运算符会保证不出现内存泄漏: T *p = new T;将被编译器转换成类似下面这个样子:void alloc...原创 2018-08-11 18:10:30 · 349 阅读 · 0 评论 -
C+的4种强制类型转换
首先看一下C语言下的类型转换将浮点类型值赋给整型变量时,舍弃其小数部分 将整型值赋给浮点型变量,值不变,但是以指数形式存储 将double类型赋值给float类型变量时,注意数值溢出 字符型赋值给整型,则存入的是字符的ASCll码 将一个int、short、long类型的值赋给char类型变量,只是将低8位放入到char中 将有符号的值赋给类型相同的无符号类型变量时,连同符号位一同传...原创 2018-08-10 17:37:47 · 3772 阅读 · 1 评论 -
STL---空间配置器
原文转自:https://blog.csdn.net/yusiguyuan/article/details/45080767STL的设计非常巧妙,组件间互取短长,形成了一个世界,这是这个世界里的组件:1. containers(容器):所谓容器,是指存放数据的地方,将数据以一定的方法组织存放。根据不同的组织方式,可以把容器分为顺序容器,如vector、deque、list,关联容器,如set...转载 2018-09-14 23:36:07 · 245 阅读 · 0 评论