对象的生存周期

一般对象的生存周期在函数内,生成时生成,调用析构函数时结束或者return之后。 一般临时对象的结束是在该对象生成的语句分号前调用析构函数。 但是引用会提升临时对象的生存周期,会将生存周期提升的与引用对象的生存周期相同。 指针并不能提升对象的生存周期,不能指向临时对象,因为当该条语句分号结束...

2018-12-03 20:55:28

阅读数:13

评论数:0

C++类基础

关于空类 (1)C++中定义一个空的类型时类,里面没有任何成员变量和成员函数,对该类型求sizeof时,得到的结果应该是1,而不是0,因为空类型中不包含任何信息,本来应该是0,但是当我们声明该类型的实例的时候,必须在内存中占有一定的空间,否则无法使用这些类型,至于占用多少内存由编译器决定,在Vis...

2018-12-03 19:50:00

阅读数:23

评论数:1

静态链表

在分散的内存区域只有地址能唯一标识一个位置,但是在连续的内存中地址和下标都可以唯一的标识一个位置。 将连续的内存区划分为多个节点,节点包括存储数据的数据域和指针域 用第一个节点记录未使用节点,用最后一个节点记录已使用节点。 #include<iostream&...

2018-11-28 21:17:44

阅读数:18

评论数:0

函数默认值,内联函数和函数的重载

函数的默认值 实参匹配形参时从左向右匹配,但是从右向左依次赋默认值。 函数默认值不能重复复制 例如:①:int fun(int a,int b,int c=30);                   int fun(int a,int b,int c=30)                ...

2018-11-28 20:50:49

阅读数:1302

评论数:1

通用内存池

1.在需要开辟内存池的类中需要实现new和delete的重载 2.用一个模板类来实现便于不同类对象调用 3.在模板类中实现内存池的开辟和资源的归还 4.在开辟内存池的类中需要设置一个静态的模板类对象来调用模板类中我们的成员方法 在模板类中: (1)定义一个静态的已设置的节点类型(一个数据域一个指...

2018-11-28 20:03:40

阅读数:21

评论数:0

写实拷贝

浅拷贝缺陷:如果存在开辟空间时,两个对象会指向同一个地址。根据对象生成和析构顺序,先生成的后析构,之后的对象析构时发生内存越界。 深拷贝缺陷:每个对象生成时都会开辟空间,但如果不修改只是使用其中的内容时,就显得浪费内存。 修改的定义:对于一个String类的对象str,str=&quo...

2018-11-24 21:48:57

阅读数:23

评论数:0

单例模式

单例模式:只生成一个对象的类 单例模式设计思路: (1)因为只要在类公有下有生成对象的函数存在,就可以生成对象。所以我们需要将生成对象的接口屏蔽掉,也就需要将构造函数,和拷贝构造函数设置为私有只能在本类类中可以访问。 (2)在类中提供一个接口来生成唯一的对象。但是如果以类对象返回时就会生成临...

2018-11-21 19:01:20

阅读数:7

评论数:0

可变参数列表

可变参数列表是通过宏来实现的,这些宏定义在stdarg.h头文件,该文件是标准库的一部分。 这个头文件声明了一个类型va_list和三个宏:va_start,va_arg,va_end。 函数首先声明一个va_list类型的变量,它用于访问参数列表的未确定部分。这个变量通过调用va_start来初...

2018-03-23 23:11:46

阅读数:30

评论数:0

二进制简单位运算

位运算的基本运算符有:&(按位与)  |(按位或)  ^(异或)  <<(左移)  >>(右移) ~(求反)对于异或运算符(^):只有不一样时才为真 ,一样的时候为假。左移右移:若将一个...

2018-03-23 22:34:44

阅读数:50

评论数:0

数组指针与指针数组

1.数组指针:意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址,是指向数组的指针2.指针数组:意思说这个数组的所有元素都为指针类型,是保存指针的数组3.例子:int(*p)[4]是一个指向数组的指针,即数组指针           int  *p[4] 是一个保存指针的数...

2018-03-11 11:00:23

阅读数:16

评论数:0

浅析指针

1.指针中*的作用:只用于解应用或者在定义时使用。2.指针在32位平台下所有类型指针均为4个字节,所有类型在64位平台下均为8字节。3.为了方便理解有如下程序便于理解:int a=10;int b=20;int c=30;int d=40; int *p=&d;*p=100...

2018-03-11 10:44:12

阅读数:22

评论数:0

空指针在主函数中被赋值与在调用函数中被赋值的差别

# include int main() { int a=10; int *p=&a; p=NULL; printf("%d\n",*p); return 0; } 在这个程序中因为将a的地址赋值给指针p,然后又将p中的存储的a的地址赋值为空...

2017-11-27 17:49:00

阅读数:90

评论数:0

关于已知在某进制中存在乘法等式成立求该进制为几进制

有 一个简单的例子 1.在n进制中存在15*4=112,则n=  A  ; A.6   B.7   C.8  D.9 分析:在10进制乘法中 例如15*4=60;13*5=65;23*7=161;1056*12=12672;             其中两个乘数的个位数乘积取余即为乘积的个...

2017-11-23 17:25:22

阅读数:290

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭