一、前言
群P可能对于许多同学来说都是一个恶梦,因为对面试形式的不熟悉,因为紧张而讲话不清,甚至对讨论的题目毫无概念,小弟曾经也有这样的疑惑,不过一个学期走来,成功通过了北电、安永、爱立信、美的、瑞安建业、万科、雀巢、GE医疗等企业的群面,还是积累了一些经验,觉得相对单面来说,群面的技巧性还是相对多一些。
个人感觉单面的不确定因素太多,很多时候都要靠面试官的喜好与心情来决定,而群面的评判标准相对多一点,也相对量化一些,所以应对之策会多一些。现在把自己的一点心得体会写出来,希望对仍为群面烦恼的兄弟姐妹以及后来人有所帮助。
二、群面的分类
1、广义的群P
只要面试官或面试者的人数多于1的面试多算群P,从面试者对面试官的角度来说,一般有1对多,多对1以及多对多:
1对多:
这种面试的实质还是单面,能够用的技巧与单面差不多,这里就不献丑了,主要要注意的是尽量照顾各位面试官的感受,在自我介绍与回答问题的时候尽量与所有的面试官都有眼神的交流,但转换不要
一、前言
群P可能对于许多同学来说都是一个恶梦,因为对面试形式的不熟悉,因为紧张而讲话不清,甚至对讨论的题目毫无概念,小弟曾经也有这样的疑惑,不过一个学期走来,成功通过了北电、安永、爱立信、美的、瑞安建业、万科、雀巢、GE医疗等企业的群面,还是积累了一些经验,觉得相对单面来说,群面的技巧性还是相对多一些。个人感觉单面的不确定因素太多,很多时候都要靠面试官的喜好与心情来决定,而群面的评判标准相对多一点,也相对量化一些,所以应对之策会多一些。现在把自己的一点心得体会写出来,希望对仍为群面烦恼的兄弟姐妹以及后来人有所帮助。
二、群面的分类
1、广义的群面
只要面试官或面试者的人数多于1的面试多算群P
C++ 中,允许用指向基类的指针来指向子类的对象,当用该指针来访问类继承层次中定义的虚拟函数时,系统可以根据该指针实际指向的对象类型来调用该对象的相应函数,这就是多态性。多态性的表现形式是:接受同一消息的不同对象可以有不同的反应,发送消息的程序不需要知道谁是具体的消息接受者。多态性也是面向对象程序设计的好处之一,它简化了程序,带来了程序的可扩展性和可维护性。
虚函数的实现是通过滞后联编(或动态联编)实现的。在程序运行时动态地根据对象的实际类型来调用该对象的成员函数。与之对应的是静态联编,没有说明为虚拟的成员函数和一般函数都是在编译时就静态确定了的。
纯虚函数就是没有实现体的函数,使用纯虚函数的类称为虚基类。虚基类的存在为其派生类提供了许多可重定义的公共接口,为它们提供了统一的访问接口。派生类必须为每个纯虚函数给出定义。
虚拟析构函数是一种特殊的虚函数。它为类继承层次中类对象的正确析构提供了可靠的保证。静态成员函数、内联函数和构造函数不能是虚函数。
利用现存两个文件,生成一个新的文件
1. 取出两个文件的并集(重复的行只保留一份)
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)
3. 删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u
代理的地址是 proxy.bupt.edu.cn 端口是8080
代理需要身份验证,验证方式采用bupt.edu.cn或者bupt.cn的邮箱身份
即和无线的用户密码相同。(
下面是对static的一点讲解
===============================================
静态数据成员的使用方法和注意事项如下:
1、静态数据成员在定义或说明时前面加关键字static。
2、静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:
<数据类型><类名>::<静态数据成员名>=<值>
这表明:
(1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。
(2) 初始化时不加该成员的访问权限控制符private,public等。
(3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。
3、静态数据成员是静态存储的,它是静态生存期,必须对
1.不要用一个函数完成两个功能!
2.当一个基类的两个派生类要初始化同一个文件的时候,可以在基类中设置一个状态变量,比如:static
is_inited; 在任一个派生类要初始化这个文件时,判断一下is_inited。
当存在未知数据大小的时候,可以使用 ostringstream 来代替 sprintf ,
避免总是申请大量的缓冲区.用法可以参照下面转载的文章.
另外解决今天遇到的一个问题,如果要重复使用一个ostringstream对象,并且需要在下次使用前清空缓冲区,则可以使用str()函数重设置缓冲区.
如:
ostringstream osSql;
//first time
osSql<<'SELECT COUNT(*) FROM t_XXXX';
...
clsConnection.Query( osSql );
....
//second time
osSql.str('');//重新使用一个空的缓冲区
osSql<<'INSERT INTO
**********'<< strBigText ;
.......
以下转载 一篇关于 ostringstream 的用法 的文章
在写程序的时候,我们往往需要对字符串进行格式化, 比如写SQL语句的时候. 在ANSI C 中可以sprintf(),
在MFC中可以用CString::Format()对字符串进行格式化.
但前者无法实现字符串的动态增加,比如你定义的字符缓存为100个字节,如果你格式化以后的内容超出了100个字节,那边后面的内容就无法看见.
所以一般来讲都为定义一个足够的字符缓冲,但这样的效率是很差的. 后者虽然可以解决这
抽象基类也就是含有'纯虚函数'的类.这个纯虚函数什么也不做,是为了方便用指向基类的指针来引用派生类的函数(基类虚函数的重载).
为什么这么做呢?
这是因为如果你定义了一个基类CBase:
class CBase
{
int i;
....
void function()
}
然后又定义了一个派生类CChild1,CChild2....
CChild1::public CBase
{
void function()
{加入自定义的部分;
}
}
每个派生类对基类的function()函数都进行了重写,加入了自己的代码
现在我们需要一个数据结构同时含有CBase,CChild1...
为个各类声明对象指针m_base,m_child1,m_child2...
&nb
switch(j)
{
case 1:
cout<<'please enter your name';
cin>>name1;
cout<<'please enter your
math';
cin>>math1;
cout<<'please enter your
english';
cin>>english1;
cout<<'please
enter your id';
cin>>id1;
ps=new student( id1,
name1, true, math1,
english1);
ofstream out('c:\\123.txt',ios::ate);