- 博客(6)
- 资源 (10)
- 收藏
- 关注
转载 为什么构造函数不能为虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数
2012-09-06 16:42:45 46436 7
转载 为什么析构函数可以为虚函数,什么情况下需要将析构函数定义为虚函数?
首先要明确:1.每个析构函数(不加 virtual) 只负责清除自己的成员。2.可能有基类指针,指向的确是派生类成员的情况。(这是很正常的), 那么当析构一个指向派生类成员的基类指针时,程序就不知道怎么办了。 所以要保证运行适当的析构函数,基类中的析构函数必须为虚析构。 基类指针可以指向派生类的对象(多态性),如果删除该指针delete []p;就会调用
2012-09-06 16:36:31 11606 2
原创 输入一个英文句子,翻转句子中单词的顺序,单词内字符顺序不变
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。处理方法是首先将整个句子翻转,然后再将其中的每个单词翻转。代码如下: #include using namespace std;void myReverse
2012-09-03 10:04:38 13253 5
原创 如何在字符串里查找第一个不重复的字母,即只出现一次的最靠前的字母
我在写这个程序时突然想起一个问题,就是C语言里给int一维数组初始化赋值的问题,比如我写:int index[11]={0}; 那么此时数组中所有的元素初始化值均为0;但是我写:int index[11]={-1};此时我以为所有元素的值均为-1了,其实不是这样的,当{}中的值的个数小于数组元素个数时,只有数组前面对应的元素被赋值了,而后面多余的元素被默认初始化为0了,所以这句话执行后,只
2012-09-03 10:00:08 5852 2
原创 字符串复制算法简单实现
如题。很多情况下面试时容易考这个问题。#include using namespace std;void strCopy(char *a, char *b);int main(){ char a[100], b[100]; cout << "Input a string :"; scanf("%s", a); cout<<a<<endl;
2012-09-02 16:01:36 1524
原创 堆排序算法实现
堆用数组来实现,但是其中元素有顺序,满足最大(小)堆的性质,如a[i]>a[i+1]&&a[i]>a[i+2],堆排序的思想是对于一个无序的数组,首先建堆,然后将第一个元素与最后一个元素交换位置,这样因为第一个元素是最大(小)值,就可以取出来了,再对其余N-1个元素进行堆得整理,代价为logn,然后再次取出第一个元素,以此类推,总的排序代价为O(N*logN)。注意建堆的代价为O(N)。
2012-09-01 16:38:49 852
hadoop 2.2.0 native文件夹库文件-64bit版
2014-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人