- 博客(13)
- 收藏
- 关注
转载 c++学习(模板特化和偏特化)
模板特化和偏特化作者:谢宝陵 周 生(合肥市炮兵学院计算中心 230031)摘要:本文通过例子介绍了在 C++标准库中广泛使用的模板特化和偏特化,并指出了模板特化和偏特化的定义规则和应用规则。关键词:模板、特化、偏特化1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,STL在C++社区中得到了广泛的关...
2018-03-21 20:48:26
245
原创 异常处理(三)-------C++异常类
C++定义了一个异常类exception类,它有一个名为what()的虚成员函数,会返回一个字符串,该字符串的特征值随实现而异。它在头文件exception中,在代码中我们可以把这个异常类用作其他异常类的基类,也可以使用exception异常。
2017-11-16 20:17:50
3800
原创 三种继承方式
派生类继承了基类的全部数据成员和除了构造函数,析构函数之外的全部数据成员,但是这些成员的访问属性在派生的过程中是可以调整的。从基类继承的成员,其访问属性由继承方式控制。 类的公有继承: 当继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。 类的私有继承: 当继承方式为私有继承时,基类的公有成员和保护成员的访问属性在
2017-11-09 20:22:34
372
原创 异常处理(二)-----C++异常机制
异常机制提供了将控制权从程序的一部分传递到另一部分的途径。由三部分组成,分别是:引发异常 使用处理程序扑获异常 使用try块 首先先举一个使用异常的例子:int division(int a, int b){ if (b == 0) { throw "Error b ==0 "; } return a / b;}int main(void){ int a
2017-11-02 21:30:36
289
原创 异常处理(一)
首先要知道什么是异常?异常是程序运行时会遇到的错误事件,会导致程序无法正常运行下去而产生中断(属于内中断)。产生异常的情况很多例如试图打开一个不可用的文件,请求过多的内存或者遭遇不能容忍的值。 那么处理异常的方式有多种,先介绍两种简单的处理方式。(1)调用abort()进行异常终止函数原型位于头文件中,实现向标准错误流发送消息然后终止程序。各个不同的编译器可能显示的中断消息不同(
2017-11-01 21:24:54
260
原创 模板函数分析
模板函数是通用的函数描述,其形式如下:teplate //这样就指出了要建立一个模板并将类型命名为anytype。template是关键字,typename是必须的,可以使用关键字class代替typename并非所有的模板参数都必须是模板参数类型,也可以是内置类型。如:templatevoid fun(T*a,int b); //这样也是允许的 但是模板具有很大的局限性,
2017-10-31 21:53:35
207
原创 C++中的转换函数
在C++中 当类的构造函数参数只有一个内置类型的形参或除了第一个形参外其他的参数都有默认值时,允许把这种内置类型赋值给类对象,这是一种隐试类型转换。那么既然存在由内置类型到类对象的类型转换,C++同样也提供由类对象到内置类型转换的方法------转换函数转换函数是用户自定义的强制类型转换,可以像使用强制类型转换一样的使用它们。它的形式如下: operator typename()
2017-10-27 14:25:29
736
转载 eplise 连接谷歌服务器
1.启动 Android SDK Manager ;2.打开主界面,依次选择「Tools」、「Options…」,弹出『Android SDK Manager – Settings』窗口;3.在『Android SDK Manager – Settings』窗口中,在「HTTP Proxy Server」和「HTTP Proxy Port」输入框内填入mirrors.neusoft.edu
2017-09-06 19:04:52
568
原创 lseek随机读取函数的使用
lseek函数会根据我们的需求对文件进行随机的读取 函数原型: off_t lseek(int fd,off_t offset,int whence); 其中第一个参数为要读取的文件的文件描述符 第二个参数是偏移的大小 第三个参数为从那个位置开始偏移 此处有三个可选项 分别为 SEEK_SET 从文件起始位置开始
2017-06-11 22:31:44
490
原创 0强转为指针的用处
ANSI C 标准允许任何值为0的常量被强制转换为任何类型的NULL指针 因此(type*)0 是一个类型为type类型的一个空指针 但是它不能被赋值 只能被用作本类型的地址来使用 eg: struct student { int id; char
2017-06-06 20:17:32
1736
原创 有符号正数溢出变负问题
以1byte为例进行说明正数区间:0000 0001 ~ 0111 1111 (1~127)负数区间:1000 0000 ~ 1111 1111(-1~-127)在有符号数中便存在 -0 与+0 的问题-0:1000 0000 +0:0000 0000C语言规定-0 既(1000 0000)为-128 所以当最大的正数 0111 1111溢出就会变成1000 0000
2017-06-01 22:01:46
3942
原创 C语言实现异常机制setjmp() longjmp()
在C语言中,我们都知道goto语句可以用来实现循环,实质上就是一个局部跳转语句(同一个函数作用域内)。我们同样可以把它用于局部异常处理。 那么如果要实现非局部跳转显然goto语句就无能为力了,所以在头文件中声明了setjmp()与setlong()函数用于实现非局部跳转,它允许立即从一个深层嵌套的函数调用中返回。int setjmp(jmp_buf env); 返回值:第一次调用返
2017-05-20 12:20:15
392
原创 变参函数详解
在调用函数时,如果我们希望函数的参数个数是可变的,那么便需要用到变参函数,既在每次函数调用时输入的参数个数不定。我们需要知道以下两点: 1 函数形参入栈方向为自右向左 2 在一个进程的内存空间中,栈低为高地址,栈顶为低地址。 所以我们可以从最后一个入栈的参数(形参第一个)根据地址以及栈空间的特点依次找到所有参数。C语言代码实现(不定参求和)#include<stdio.h>#d...
2017-05-19 20:20:43
462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人