- 博客(24)
- 收藏
- 关注
转载 虚函数,纯虚函数,抽象类
虚线以下为转载。补充一些,虚函数(没有 =0),是一定要定义函数的。函数体不可为空。否则就会编译错误。而纯虚函数是必须不能在base 里面定义的。那么相比较纯虚函数而言,为什么要虚函数呢?怎么访问呢? 如果用指针的话,实际是不能访问的。我们可以看下面的第一个实例。访问到的,还是derived class.那么,虚函数存在的意义就是。。。。没意义。。。。来看下面一些补充例子By defa
2014-01-16 11:32:18 644
原创 C+= 指针理解的通关测试:指针数组,数组指针,指针函数,函数指针,二级指针
1. 你能给出例子么? 2. 能识别么? int (*f)[4] / 函数指针数组int *f[4]; 指针数组int (**f)[4]; int *(*(f))[4];int (*f[4])();int *((*)[4]);int (*f)(int)int (*(*f)(int, int))(int)
2014-01-12 08:48:33 544
转载 C++ 数据结构和算法
先了解下一些概念:堆:由程序员自己分配释放(用malloc和free,或new和delete) ,如果我们不手动释放,那就要到程序结束才释放。如果对分配的空间在不用的时候不释放而一味的分配,那么可能会引起内存泄漏,其容量取决于虚拟内存,较大。栈:由编译器自动分配释放,其中存放在主调函数中被调函数的下一句代码、函数参数和局部变量,容量有限,较小.局部变量的默认类型都是auto,从栈中分配内存
2014-01-12 07:23:13 517
转载 C++ static 用法
static关键字 主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用 (1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register,与auto类型(普通)局部变量相比, static局部变量有三点不同1. 存储空间分配不同: a
2014-01-12 06:39:22 469
转载 C++ 函数指针的用法
从语法上讲,有两种不兼容的函数指针形式:(1) 指向C语言函数和C++静态成员函数的函数指针(2) 指向C++非静态成员函数的函数指针不兼容的原因是因为在使用C++非静态成员函数的函数指针时,需要一个指向类的实例的this指针,而前一类不需要。3.1 定义一个函数指针指针是变量,所以函数指针也是变量,因此可以使用变量定义的方式来定义函数指针,对于普通的指针,可以这么
2014-01-12 02:00:44 1192
转载 boost::interprocess 内存映射文件代替 fstream用法
一、Why 今天项目中要读写一个将近40M的文件,发现使用fstream读文件预先分配一个40M的缓冲区buffer时,随机性请申请内存会失败,因此查了下相关资料,发现使用内存映射文件可以解决此类读写大文件的问题。原理:内存文件映射其实是内存中分配了一块区域映射到文件所在的物理磁盘上,内存和物理磁盘的数据交换是以页大小处理的,因此在操作过程中,不会将整个文件缓存到内存上,因此使用
2014-01-09 04:17:05 2722 3
转载 C++中const、volatile、mutable的用法
const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue; //nValue是co
2014-01-09 00:36:14 474
转载 C++标准库 之 读入输出的方法
ifstream 和 ofstream( 引用)C++标准库 之 iostream库的学习笔记(二)fstream库以及ofstream类的使用 ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有
2014-01-08 11:15:46 783
转载 侠客行
赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。 十步杀一人,千里不留行。事了拂衣去,深藏功与名。 闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。 三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。 救赵挥金槌,邯郸先震惊。千秋二壮士,煊赫大梁城。 纵死侠骨香,不惭世上英。谁能书合下,白首太玄经
2014-01-02 10:30:36 684
转载 const参数,const返回值与const函数
const 这个关键字经常出现在函数的定义中,而且会出现在不同的位置,比如: 1) int strcmp (const char *str1,const char *str2); 2) const int & min (int &, int &); 3) void printM
2013-12-29 02:58:21 689
转载 函数指针与指针函数
在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1.函数指针定义函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”
2013-12-28 01:03:32 391
转载 C++ 之 Const 使用大全
之前一直在学习C/C++,关于const的使用,这里出现一点,那里出现一点。知识用时方恨少,这一段时间正好各种笔试题,其中关于const的用法也是层出不穷,所以疲于在书本上各种翻,这里汇总一下,加深自己的印象的同时,也方便以后查阅和学习。菜鸟一个,若有错误,望指正!const关键字常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。不管出现在
2013-12-26 23:30:51 466
转载 C++ 之 & 使用
干,终于把这个问题搞清楚了:& 可定义引用变量。说白了,就是别名的定义方式。e.g int a=1; int &b=a; 那么b 其实就是 a 了。唉,干嘛搞这么多嘛。 另外,基础知识要学牢固啊。
2013-12-26 23:11:42 580
转载 STL 之 map
map的基本操作函数: C++Maps是一种关联式容器,包含“关键字/值”对, 提供了很好一对一的关系,比如学生学号和姓名之间的查询。这就是一个Map储存类型。 1 头文件 #include 2 定义 map int> my_Map; 或者是typedef map int> MY_MAP; MY_MAP
2013-12-22 01:26:36 658
转载 C++ Boost智能指针详解
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::shared
2013-12-22 00:20:44 713
转载 C++ 之 this 指针
当你进入一个房子后,你可以看见桌子、椅子、地板等,但是房子你是看不到全貌了。对于一个类的对象呢?也如此。你可以看到它的成员函数、成员变量,但是实例本身呢?this是一个指针,它时时刻刻指向你这个实例本身,this就是自己,自己就是this,每个对象都有一个指向自己的this指针,就因为这个this指针,才使得有不同的实例。但是this指针并不是对象本身的一部分,不会影响sizeof(对象)的结
2013-12-21 23:29:14 433
转载 Boost filesystem 之 read files
Boost.Filesystem 库为对路径、文件和目录进行查询和操作提供了可移植的工具#include "boost/filesystem.hpp" // 包含所有需要的 Boost.Filesystem 声明#include // 使用 std::coutusing boost::filesystem; // 为了方便陈述;在真实
2013-12-20 12:47:56 1114
转载 操作符重载( From C++ prime)
To overload an operator, you use a special function form called an operator function. An operator function has the formoperator op(argument-list)where op is the symbol for the operator being ove
2013-12-18 06:45:48 709
转载 C++中的数据类型及占字节数
VC++中各种基本数据类型的详细说明如下表所示:类 型名 称占用字节数取 值 范 围bool布尔型-true,false(signed) char有符号字符型1-128~127unsiged char无符号字符型10~255
2013-12-17 06:40:22 823
转载 Boost 之circular_buffer
用法: #include int main(int /*argc*/, char* /*argv*/[]) { // 創建一個容量為3個整數的循環緩衝區。 boost::circular_buffer cb(3); // 插入一些元素到緩衝區。 cb.push_back(1); cb.push_back(2); cb.push_back(3); int a = cb[0]
2013-12-17 03:26:25 720
转载 auto_ptr智能指针的用法
C++中指针申请和释放内存通常采用的方式是new和delete。然而标准C++中还有一个强大的模版类就是auto_ptr,它可以在你不用的时候自动帮你释放内存。下面简单说一下用法。[cpp] view plaincopy用法一: std::auto_ptrm_example(new MyClass()); 用法二: std::auto_ptrm_example
2013-12-17 01:43:01 503
原创 Boost tokenizer 一种简单的批分字符串的办法
boost::tokenizer是用于切割字符串的,类似于Java里面的StringTokenizer。使用方法如下1。 typedef 一个自己 tokenizer,(由于boost::tokenizer的声明太长了,typedef比较方便一些)e.g typedef boost::tokenizer > tokenizer; 2。定义一个分割符,比如 “竖杠”,另外注
2013-12-15 09:54:19 538
原创 Boost 之 lexical_cast
在进行编码时经常需要将整型数转化为string, 或者string转成整型数,或者char[]转化为整数。 boost的lexical_cast基本上提供了我们需要的所有常用的转化功能。相比一般的转换,其优点在于 可在任意可输出到stringstream的类型和任意可从stringstream输入的类型间转换。 一个开胃的例子:string to int, int i = boost::le
2013-12-15 09:32:00 538
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人