摘要: 指针和引用的差别:1.非空区别。指针可以为空,而引用在声明时必须初始化。2.合法性区别。在使用引用之前不需要测试它的合法性。相反,指针则应该总是被测试,反正其为空。3.可修改区别。指针的指向是可以修改的,而引用则总是指向在初始化时被指定的对象,以后不能改变,但是指定的对象其内容可以改变。4.应用区别。总的来说,在以下情况下应该使用指针:一是考虑到存在不指向任何对象的可能(在这种情况下,能够设置指针为空),二是需要能够在不同的时刻指向不同的对象。如果总是指向一个对象并且一旦指向一个对象后就不会改变指向,那么应该使用引用。5.占用内存区别。指针占内存空间而引用不占内存空间。 阅读全文
posted @ 2012-11-03 15:49 吉大依恋 阅读(162) 评论(0) 推荐(0) 编辑
摘要: #include<iostream>using namespace std;class A1{public:int a;static int b;A1();~A1();};class A2{public :int a;char c;A2();~A2();};class A3{public:float a;char c;A3();~A3();};class A4{public:float a;int b;char c;A4();~A4();};class A5{public:double d;float a;int b;char c;A5();~A5();};int main(){c 阅读全文
posted @ 2012-11-03 15:02 吉大依恋 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)通过这道题面试官想考以下几个知识点:1.#define语法的基本知识(例如,不能以分号结束,括号的使用,等等)2.要懂得预处理器将为你计算常数表达式的值,因此,写出你如何计算多少秒比直接计算出实际的值更有意义。3.意思到这个表达式的值将使一个16位机的整型数溢出,因此要使用长整型符号L,告诉编译器这个常数是长整型。答案:#define seconds_per_year (365*24*60*60)UL写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。答案:#define MIN(A,B) ((A)< 阅读全文
posted @ 2012-11-03 12:59 吉大依恋 阅读(1420) 评论(0) 推荐(0) 编辑
摘要: STL算法的特殊版本所接受的所谓 条件 或 策略 或 一组动作,都以仿函式形式呈现。所谓仿函式(functor)就是使用起来像函式一样的东西。如果你针对某个class 进行operator()多载化,它就成为一个仿函式。至于要成为一个可配接的仿函式,还需要一写额外的努力。#include<iostream>using namespace std;//由于将operator()多载化了,因此plus成了一个仿函式template <class T>struct plus{T operator()(const T& x,const T& y){return 阅读全文
posted @ 2012-11-03 10:45 吉大依恋 阅读(233) 评论(0) 推荐(0) 编辑