
C++
李逝水
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
构造函数为什么不能为虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数原创 2013-10-02 21:39:40 · 514 阅读 · 0 评论 -
如何创建makefile
目的: 基本掌握了 make的用法,能在Linux系统上编程。环境: Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。准备: 准备三个文件:file1.c, file2.c, file2.h file1.c: #include转载 2013-12-24 17:30:38 · 1438 阅读 · 0 评论 -
string的四个默认函数
编写类String的构造函数、析构函数和赋值函数类String的原型为:class String{ public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~转载 2013-10-29 22:07:10 · 977 阅读 · 0 评论 -
怎么将一个十六进制数转变成十进制数
在程序中,我们有时需要将一个十六进制字符串转换为十进制数字。比如:char *ptr="0x11";int n=0;//我们想让n等于0x11,即17通常我们在C中,想将一个字符串转换为一整形数字,通常会使用下面的方法:view plaincopy to clipboardprint?char *ptr="123"; int n=0; n=a转载 2013-10-29 22:38:44 · 2161 阅读 · 0 评论 -
c++中的四种类型转换的区别
c++中的四种类型转换的区别 类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION; 但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换 成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生转载 2013-10-14 14:26:11 · 578 阅读 · 0 评论 -
k路归并 - 败者树实现
外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行多路归并排序。 多路归并排序算法在常见数据结构书中都有涉及。从2路到多路(k路),增转载 2013-10-14 17:10:25 · 889 阅读 · 0 评论 -
虚析构函数
虚析构函数是为了解决这样的一个问题:基类的指针指向派生类对象,并用基类的指针删除派生类对象。如果某个类不包含虚函数,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可移植性。所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。实际上,很多人这样总结:当且仅当类里包转载 2013-10-14 14:52:58 · 518 阅读 · 0 评论 -
C++中explicit关键字的作用
C++中explicit关键字的作用explicit用来防止由构造函数定义的隐式转换。 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。例如: class things{ public: things(const std::string&name =""):转载 2013-10-14 14:48:10 · 543 阅读 · 0 评论 -
c/c++ 的内存机制
进 程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。一、Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么转载 2013-10-13 15:09:00 · 599 阅读 · 0 评论 -
strcpy函数的实现
大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是:[cpp] view plaincopyprint?char *my_strcpy(char *dst,const char *src) { assert(dst != NULL); assert(src != NULL); char *ret = ds转载 2013-10-13 14:05:30 · 555 阅读 · 0 评论 -
为虚函数,什么情况下需要将析构函数定义为虚函数?
为虚函数,什么情况下需要将析构函数定义为虚函数?首先要明确:1.每个析构函数(不加 virtual) 只负责清除自己的成员。2.可能有基类指针,指向的确是派生类成员的情况。(这是很正常的), 那么当析构一个指向派生类成员的基类指针时,程序就不知道怎么办了。 所以要保证运行适当的析构函数,基类中的析构函数必须为虚析构。 基类指针可以指向派生转载 2013-10-02 21:42:50 · 453 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
vs加载lib转载 2015-07-21 14:58:02 · 673 阅读 · 0 评论