Feed on
Posts
Comments

Monthly Archive for 五月, 2008

重载、覆盖、隐藏

这里讲重载(overload)、覆盖(override)、隐藏是基于OOP的继承、多态来阐述。 三者有一点是完全相同的,那就是讨论的函数都是同名的。
1、重载比较好理解,是指与许存在多个同名函数,而这些函数的参数表不同(或者参数个数不同、或者参数类型不同、或者两者皆不同)。注意:仅仅是函数的返回值不同的重载,编译器是会嗷嗷叫的!
类成员函数被重载的特征:

相同的范围(在同一个类中);
函数名字相同;
参数不同(或者参数个数不同、或者参数类型不同、或者两者皆不同);
virtual 关键字可有可无。

这里要偏离下主题,备案一个刚刚获知的知识点。一直以来,我以为复制构造函数有以下两种重载原型:
Myclass(Myclass &);
Myclass(const Myclass &);
今天又学一手,还有第三种复制构造函数原型:
Myclass(volatile Myclass &);
2、言归正传,而覆盖是指派生类函数覆盖基类函数,它总是和继承、多态扯上千丝万缕的关系,可谓你中有我,我中有你!它的特征如下:

不同的范围(分别位于派生类与基类);
函数名字相同;
参数相同(vs2005里两个函数的返回值也要一样,否则报error);
基类函数必须有virtual 关键字。

也就是说分别处于互为继承关系的类中,两个完全相同的一模一样的虚函数才有覆盖的概念!
看如下代码:
#include <iostream>
using namespace std;
class base{public:    void f(int x) { cout<< “base::f(int)” << endl; }    void f(float y) { cout << “base::f(float)” << endl;}    virtual void g(void) { cout << “base::g(void)” << endl; }};
class derived:public base{public:
    //这里的virtual可要可不要,因为基类函数有virtual,继承类同名同参数函数自动加上virtual    virtual void g(void) { cout << “derived::g(void)” << endl;}};
int [...]

Read Full Post »

#pragma预处理指令

在所有编译预处理指令中,#pragma指令是最复杂的,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。它的格式一般为:#pragma para  其中para为参数。下面罗列一些我见到过的参数。
1.message 参数
使用方法:#pragma message(“文本消息”)
作用:当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。注意:这里的编译输出窗口不是指打印程序输出结果的那个黑黑控制台窗口,而是指IDE下面输出编译信息,例如:给你报编译错误的那个窗口。
2. warning 参数
例如:#pragma warning(diable:4507;once:4385;error:164)
           #pragma  warning(disable:4507  34)    //  不显示4507和34号警告信息             #pragma  warning(once:4385)                //  4385号警告信息仅报告一次             #pragma  warning(error:164)                //  把164号警告信息作为一个错误。 
同时这个pragma  warning  也支持如下格式:             #pragma  warning(  push  [  ,n  ]  )             #pragma  warning(  pop  )  这里n代表一个警告等级(1~4)。             #pragma  warning(  push  )保存所有警告信息的现有的警告状态。             #pragma  warning(  push,  n)保存所有警告信息的现有的警告状态,并且把全局警告  等级设定为n。               #pragma  warning(  [...]

Read Full Post »

无题

最近好久好久都没有来ksarea写点东西了。每次开ksarea,发现更新得最快的就是评论,而且基本上都是一个版本:楼主真好,我也要一份!
最近生活很平淡,基本上是在忙论文呀,修改呀,填表格呀之类的。昨天打印了10份,给导师了,终于可以歇一歇了,就等着下周四下午答辩了。今天早上实验室的老师还跑过来问我是不是最后决定还是在计算机院答辩呀,什么我在这边开题的所以要交开题费呀,还有什么我需要把一半的钱都从计算机院转到实验室来之类的话……听得好烦,一天到晚就是什么费什么费的。我kao,实验室从学生身体搜刮下来的钱还少了么?
前天晚上king发烧了,昨天他在小家休息了一天,呵呵,幸好福大,昨天就恢复得差不多了。king发烧的时候,我在床旁边蹲着,他就迷迷糊糊的和我说话。当时很为他担心,后来想到了前段时间,妈妈也说过一次她感冒发烧了,哎,也不记得那时自己忙什么去了,没回去照顾照顾她,心里多少有些歉意。前几天和妈妈视频聊天时,她跟我说给我买了很多东西,说我马上要工作了,不能再打扮得像个小孩子了,呵呵,心里真高兴。这个周末要回去好好的陪陪他们,1个月之后俺就要走了,可能要到过年才能回来,哎。爸爸妈妈心里肯定很舍不得的。
毕业之前的日子好难熬,压制不住自己浮躁的心态。很多事要做,又都不想做,或许大家也都是这样的。不过还是应该在离开之前,做点什么的,做点以后工作了就不容易做的事情。

Read Full Post »

想毕业

今天实验室终于开题了,终于开题了!
对于其中的过程……俺就不想在此评论什么了,过了万岁吧。可能有些人看了会惊讶,开题还分过和不过的?!确实哦,俺们实验室不光如此,还要分好、中、坏 三个等级呢。谁倒霉被分到“坏”的里面还要再开题一次……无语。俺总算是走完“开题”这个过场了,幸好上周实验室的夏老师回来,不然还不知道要什么时候才能开题。十几天之后就要答辩了,呵呵,希望毕业答辩顺顺利利。
今晚突然有一种很想毕业、很想离开这里的冲动。我们小组一直以来都很辛苦,加班加点的赶进度是很平常的事情。实验室的头儿对博士们的要求非常严格,博士们都不容易,个个都想顺利毕业,所以都拼命的编代码呀、写基金呀、做提案呀、发论文呀……想说的是我们组的组长,一个女孩子,完成了很多人都不能完成的事情,在我们小硕士的心中算是牛人了,但是今天看到了组长很难过的一面。组长平时在实验室不太喜欢说笑,但对人对事都很真诚,对我们小硕士的培养也是花了一番心思的,在此还想表达一下me心中一直深藏着的感激之情。相处这么久,第一次看到她无奈、难过的样子,心里也不好受啊。哎,很想去安慰,但是觉得自己能够说出来的话在那时显得很贫瘠,所以也就在她后面跟着走了一段,然后离开了。
如果去年9月,没有出现波折,我加入了实验室博士的队伍,或许,此时此刻就不会这么想了,我可能还是一如既往的处于精神亢奋状态。上次聊天,一个07级的硕士无意中对我说:“师姐,你都不知道,你以前很少笑的,如果笑,那也是皮笑肉不笑。”“呵呵,是吗?”我听了觉得很惊讶。后来回头想想,好像也是哦。那时的我还真有些喜怒无常,而king则成了我发泄心中不悦时的直接受害者,呵呵……
不过现在一切都过去了,再过1个月,俺就要毕业了,就要走向tencent拉,呵呵,希望那里的气氛愉悦。祝俺一切顺利吧,也祝实验室的师弟师妹明天或是后年一切顺利,还要祝曾经无私的给予我很多帮助的组长今年或是明天毕业顺利。

Read Full Post »