常用面试题目:关联、聚合以及组合的区别
涉及到uml中的一些概念:关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系;聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,用空的菱形表示聚合关系
从实现的角度讲,聚合可以表示为:
class a {…} class b { a* a; …..}
而组合表示contains-a的关系,关联性强于聚合:组合类与被组合类有相同的生命周期,组合类要对被组合类负责,采用实心的菱形表示组合关系
实现的形式是:
class a{…} class b{ a a; …}
拓展:
指针的指针
指针的指针看上去有些令人费解。它们的声明有两个星号。例如:
char ** cp;
如果有三个星号,那就是指针的指针的指针,四个星号就是指针的指针的指针的指针,依次类推。当你熟悉了简单的例子以后,就可以应付复杂的情况了。当然,实际程序中,一般也只用到 二级指针,三个星号不常见,更别说四个星号了。
指针的指针需要用到指针的地址。
char c='a';
char *p=&c;
char **cp=&p;
通过指针的指针,不仅可以访问它指向的指针,还可以访问它指向的指针所指向的数据。下面就是几个这样的例子:
char *p1=*cp;
char c1=**cp;
你可能想知道这样的结构有什么用。利用指针的指针可以允许被调用函数修改局部指针变量和处理指针数组。
void findcredit(int **);
main()
{
int vals[]={7,6,5,-4,3,2,1,0};
int *fp=vals;
findcredit(&fp);
printf(%dn,*fp);
}
void findcredit(int ** fpp)
{
while(**fpp!=0)
if(**fpp<0) break;
else (*fpp)++;
}
首先用一个数组的地址初始化指针fp,然后把该指针的地址作为实参传递给函数findcredit()。findcredit()函数通过表达式**fpp间接地得到数组中的数据。为遍历数组以找到一个负值,findcredit()函数进行自增运算的对象是调用者的指向数组的指针,而不是它自己的指向调用者指针的指针。语句(*fpp)++就是对形参指针指向的指针进行自增运算的。但是因为*运算符高于++运算符,所以圆括号在这里是必须的,如果没有圆括号,那么++运算符将作用于二重指针fpp上。
-
中兴三次面试经验
来到印尼第三天,我便虎头虎脑的去中兴面试去了。没有充分的心理准备,没有丰富的专业知识,更别提无法沟通的英语了,虽然满怀希望,但更多的只是试一试和锻炼一下的想法。面试我的是人力资源部的经理,开始的时候聊一聊自己的工作经验,来到印尼的原因,等等。后来有一位印尼...
-
深圳职员、雇员考试经验
一、考试基本情况:深圳市职员考试原来是和深圳是公务员考试并行的,也就是说两个考试走的过程和考试时间是一样的,但是由于今年广东省和深圳市都取消了公务员考试,职员雇员考试也就独立了出来。进深圳市公立医院,考试是毕经之路(当然我是说正式编制的)。如果要进民营医...
-
中国人民银行直属《金融时报》笔试经验
看到大部分报人行的都是金融的,就发一个《金融时报》的笔试经验。第一部分先是一个小时的行测题,共70题,题型基本都包括了,时间挺紧张的。第二部分是专业能力测试,10:30-12:00。包括新闻基础知识填空(30分吧),如《察世俗》及作者、延安的报纸、什么苏联的报纸、《红...
-
大连笔试的,攒点rp
本人是11.3大连交大下午4点考试的同学。以前都是看其他同学提供的信息,真是谢谢大家,现在自己也可以回馈一下了。要依邮件的要求带好所需物品(其实,啥笔都行,就是用来在草纸上算算数的,是机考)在候考的时候,很nice的hrjj问我邮件两个通知都收到没,还说今年他们第一次短...