最佳面试问题{讨论}{技术}

449 views
Skip to first unread message

pongba

unread,
Dec 9, 2009, 5:08:43 AM12/9/09
to TopLanguage
今天在很久不上的Reddit上看到一个热帖:最佳C++面试题一道:

Q:能否在成员函数中delete this?

作者的解释是,对于没有遇到过这个问题的人,这个问题比较考底层知识,同时也考察思路。

参考:
原文:http://blogs.windwardreports.com/davidt/2009/12/the-best-c-interview-question-ever.html
reddit: http://www.reddit.com/r/programming/comments/ac1q9/the_best_c_interview_question_ever/

其实我想问问大家遇到的类似最佳面试题:语言相关和语言无关的都可。

--
刘未鹏(pongba)
Blog | Mind Hacks
http://mindhacks.cn
TopLanguage
http://groups.google.com/group/pongba

Jeff Chen

unread,
Dec 9, 2009, 5:12:19 AM12/9/09
to pon...@googlegroups.com
这个...应该能吧,去看答案

2009/12/9 pongba <pon...@gmail.com>



--
My Blog:http://jeffchen.cn

Kenny Yuan

unread,
Dec 9, 2009, 5:20:35 AM12/9/09
to pon...@googlegroups.com
在软件“工程”方面,可以问问这个:

为什么没有银弹?

银弹的可能性?”

声明:这不是开某位同学的玩笑。这个问题的水很深,能看出对方的经验和思考的深度,如果用英语的话还可以考察对方的英语能力。



2009/12/9 pongba <pon...@gmail.com>



--
Kenny Yuan
C++, UI, LISP, MMA, Psychology and Automobile.
BLOG: CS巴别塔(Computer Science Babel)
URL1: http://csbabel.wordpress.com/
URL2: http://blog.csdn.net/yuankaining/

SpitFire

unread,
Dec 9, 2009, 6:43:18 AM12/9/09
to pon...@googlegroups.com
hehe,老一些的库有这个手法,弄个Release函数,里面就是delete this;

2009/12/9 pongba <pon...@gmail.com>



--
SpitFire

周龙亭

unread,
Dec 9, 2009, 6:54:33 AM12/9/09
to pon...@googlegroups.com
1. 对象不是通过 new 创建出来的
2. 在析构函数里调用 delete this

上面两种情况会怎么样?

Tinyfool

unread,
Dec 9, 2009, 7:08:32 AM12/9/09
to pon...@googlegroups.com
银价狂升,所以现在都用铅做子弹了,所以没有银弹

2009/12/9 Kenny Yuan <yuank...@gmail.com>



--
Tinyfool的开发日记 http://www.tinydust.net/dev/
代码中国网 http://www.codechina.org
myTwitter: http://twitter.com/tinyfool

jinhu wang

unread,
Dec 9, 2009, 9:05:05 AM12/9/09
to pon...@googlegroups.com
依赖于后面的调用。
后面没有涉及到对象资源性的调用一般就没有问题:资源包括成员变量、虚函数等

2009/12/9 pongba <pon...@gmail.com>

四不象

unread,
Dec 9, 2009, 9:30:18 AM12/9/09
to pon...@googlegroups.com
1.
在windows下delete相当于执行HeapFree,HeapFree会执行失败,但程序不会出错。
debug编译的话执行可能会报错。
 
2. 没问题

Lei Yang

unread,
Dec 9, 2009, 10:32:09 AM12/9/09
to pon...@googlegroups.com

windows下应该没有问题, 大家可以参考IUnknow接口的实现。

在COM技术的所有接口的基类IUnknow有这样一个成员 Release(), 当用户调用它的时候,他会将计数-1, 如果为0则释放资源, 代码看起如下
 

HRESULT Release() {
  m_iRef--;
  if (m_iRef == 0) {
     delete this;

Michael

unread,
Dec 9, 2009, 8:08:24 PM12/9/09
to pon...@googlegroups.com
大哥!

2009/12/9 Kenny Yuan <yuank...@gmail.com>



--
-- ----
 此致,
敬礼!
-----
Michae Zhou(周中良)
MSN:z_zhon...@hotmail.com

jinhu wang

unread,
Dec 9, 2009, 8:51:38 PM12/9/09
to pon...@googlegroups.com
补充一下,这个问题是个很能考验能力的题目。

其实delete的作用无非就是释放内存,销毁对象资源。但是关键是c++的对象构造方式有很多种,你可以很灵活的把对象创建在堆上栈上。你可以重载类的new,delete。

如果new和delete是配对的,delete this本身在任何操作系统上都是不会出现问题的。
显示的delete this如果引发问题,也不会是一个很晦涩的问题。因为你会很清楚delete this后面发生的事情。就怕有非显示的delete this。这个时候,你在delete this后做的事情直接决定了你的程序是否会崩溃,例如调用虚函数,调用写成员变量的函数,说白了都是访问了已经销毁的对象资源。

2009/12/9 jinhu wang <wangji...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 9:04:02 PM12/9/09
to pon...@googlegroups.com
关于考察编程基础的面试题,对于写多了程序的人随手可以拈一个来问。很多表面看起来都很一般,但是一细究就会发现难度了。
简单点的:
Q:评价下面这个内存分配函数,如何改进?如果将错就错能否实现?如果你去设计如何改进?
void mymalloc(void*a_pbuf);
2009/12/9 pongba <pon...@gmail.com>

liuxinyu

unread,
Dec 9, 2009, 9:18:20 PM12/9/09
to TopLanguage
数年前和同事们说过这个问题。

C++ FAQ上就给一句话“只要你delete this以后别再碰this就可以,但是不推荐这么干”

但是实际上有N多商业实现和库会用delete this。举个某著名的GUI库,非模态对话框在关闭时就是一句delete this。

此问题的关键是那个动词“碰”(touch)什么叫碰?调用虚函数,访问成员变量等等都是touch。

不过我个人觉得面试时问语言细节不好。这样会filter出有经验的人不假,但是经验少,有创造力的人往往被filter掉了。
所以我面试时一般问开放问题。不像选择题那样非A就是B,一般人都会回答出,但是有的答案是O(N^2)的,有的是O(logN)的
有的是O(1)的。这样就把水平分出来了。

Kenny Yuan

unread,
Dec 9, 2009, 9:28:26 PM12/9/09
to pon...@googlegroups.com
再补充一个:对于C/C++,是不是可以用memcmp来比较变量是否相等?(要求与“==”运算符等价)

细节:T是内置类型(如long等),int numBytes = sizeof T,用T类型来声明变量v1和v2,用memcmp来比较其内存&v1和&v1,比较的长度为numBytes。

如果不可以,说出理由。


Jeff Chen

unread,
Dec 9, 2009, 9:30:26 PM12/9/09
to pon...@googlegroups.com
说的不错.如果职位需求真的很抠这些细节,那么问一些语言的细节也无妨.
 
不知道这里有没有cisco的兄弟,小弟正准备去面试。有没有高人提示一二.

2009/12/10 liuxinyu <liuxi...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 9:32:13 PM12/9/09
to pon...@googlegroups.com
filter不是为了筛掉被考察的人。换句话说,面试很大程度上是看你不会什么。


 
2009/12/10 liuxinyu <liuxi...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 9:37:07 PM12/9/09
to pon...@googlegroups.com
jeff在上海么?面得是什么岗位?网上可以找到不少以前cisco面试题,http://www.geekinterview.com/Global-Interview-Questions/Cisco
以前同事遇到过一个思科笔试题,请用5种方法翻转一个单向链表。
其他的还有bit操作之类的
009/12/10 Jeff Chen <sheis...@gmail.com>

Jeff Chen

unread,
Dec 9, 2009, 9:38:26 PM12/9/09
to pon...@googlegroups.com
第一次听说这种理论.
 
我以为面试都是看你会什么,工作经验,和公司的工作要求是否吻合

2009/12/10 jinhu wang <wangji...@gmail.com>

Jeff Chen

unread,
Dec 9, 2009, 9:39:06 PM12/9/09
to pon...@googlegroups.com
好的,我是在上海,还没笔试

2009/12/10 jinhu wang <wangji...@gmail.com>

Jeff Chen

unread,
Dec 9, 2009, 9:39:55 PM12/9/09
to pon...@googlegroups.com
谢谢这个网址,以前还真不知道:)

2009/12/10 Jeff Chen <sheis...@gmail.com>

sagasw

unread,
Dec 9, 2009, 9:44:14 PM12/9/09
to pon...@googlegroups.com
没想出来为何不可以


------------------------------------
C++, Lua, living in Dalian
http://sunxiunan.com/
http://twitter.com/sagasw
------------------------------------


2009/12/10 Kenny Yuan <yuank...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 9:45:06 PM12/9/09
to pon...@googlegroups.com
里面还有adobe等公司的,都是国外的面试题。06年一次去adobe吃面前找到的这么个网站,做了不少相关题目。面后感觉这上面的题目比北京出的题目难度大。事实上a的题目都很基础,全是c++的基础题。


 
2009/12/10 Jeff Chen <sheis...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 9:46:12 PM12/9/09
to pon...@googlegroups.com
但是存在short和long比对的场景

2009/12/10 sagasw <sag...@gmail.com>

Kenny Yuan

unread,
Dec 9, 2009, 9:47:17 PM12/9/09
to pon...@googlegroups.com
不存在这种场景,一定是同类型的,都是类型T

2009/12/10 jinhu wang <wangji...@gmail.com>

sagasw

unread,
Dec 9, 2009, 9:49:53 PM12/9/09
to pon...@googlegroups.com
你没有仔细看原文吧?T难道一会是long一会是short?
要你这样说,我还知道有符号无符号,浮点整形的区别呢?


细节:T是内置类型(如long等),int numBytes = sizeof T,用T类型来声明变量v1和v2,
用memcmp来比较其内存&v1和&v1,比较的长度为numBytes。


------------------------------------
C++, Lua, living in Dalian
http://sunxiunan.com/
http://twitter.com/sagasw
------------------------------------


2009/12/10 jinhu wang <wangji...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 9:53:08 PM12/9/09
to pon...@googlegroups.com
我意思是用memcmp就局限了同类型的匹配了,对于一个long一个short或者float之间非绝对精确比对就不适用了。

2009/12/10 sagasw <sag...@gmail.com>

sagasw

unread,
Dec 9, 2009, 9:54:23 PM12/9/09
to pon...@googlegroups.com
这种站点一堆一堆的,到美味书签上一搜,连火热度都能知道(看收藏数)。

http://delicious.com/search?p=interview+questions&chk=&context=all||&fr=del_icio_us&lc=1

大公司里傻子也不少,很多人都不是因为会点什么而进入公司的,我觉得运气最重要。


------------------------------------
C++, Lua, living in Dalian
http://sunxiunan.com/
http://twitter.com/sagasw
------------------------------------


2009/12/10 jinhu wang <wangji...@gmail.com>
关于考察编程基础的面试题,对于写多了程序的人随手可以拈一个来问。很多表面看起来都很一般,但是一细究就会发现难度了。

jinhu wang

unread,
Dec 9, 2009, 10:01:45 PM12/9/09
to pon...@googlegroups.com
后半句很对。
但是靠运气的不是傻子,而是天才,因为如果你的技术水平是他那个样子,你能进那个公司吗?
当你靠着你的技术实力哼哧哼哧的累的脑疲劳的时候,人家还可以精力充沛的磨洋工,实不成还能拿个补偿找下家再次迎接人生新辉煌呢。
2009/12/10 sagasw <sag...@gmail.com>

Jeff Chen

unread,
Dec 9, 2009, 10:10:45 PM12/9/09
to pon...@googlegroups.com
我现在想找一些cisco的笔试题做做,apply的是 software automation这样的职位.
 
因为和我现在的工作有很大出入,只能早做准备 ^ ^
 
 
 
大公司里傻子当然多了,因为他大嘛
 


 
2009/12/10 jinhu wang <wangji...@gmail.com>

Michael

unread,
Dec 9, 2009, 10:37:23 PM12/9/09
to pon...@googlegroups.com
我也搭车:
不知道这里有没有Huawei的兄弟,小弟也正准备去面试。有没有高人提示一二.
大家轻拍!

2009/12/10 Jeff Chen <sheis...@gmail.com>

jinhu wang

unread,
Dec 9, 2009, 10:54:23 PM12/9/09
to pon...@googlegroups.com
去天涯华为专区找找吧。呵呵。

2009/12/10 Michael <zhong...@gmail.com>

许海斌

unread,
Dec 9, 2009, 11:11:33 PM12/9/09
to TopLanguage
delete的本质是先调用destructor然后operator delete,成员函数里调用没问题,不过不要忘记private 析构函
数;
但是析构函数里调用delete this,应该是unknown behavior吧

On 12月10日, 上午11时54分, jinhu wang <wangjinhu...@gmail.com> wrote:
> 去天涯华为专区找找吧。呵呵。
>
> 2009/12/10 Michael <zhonglia...@gmail.com>
>
> > 我也搭车:
> > *不知道这里有没有Huawei的兄弟,小弟也正准备去面试。**有没有高人提示一二.*
> > 大家轻拍!
>
> > 2009/12/10 Jeff Chen <sheismyl...@gmail.com>


>
> >> 说的不错.如果职位需求真的很抠这些细节,那么问一些语言的细节也无妨.
>
> >> 不知道这里有没有cisco的兄弟,小弟正准备去面试。有没有高人提示一二.
>

> >> 2009/12/10 liuxinyu <liuxiny...@gmail.com>


>
> >> 数年前和同事们说过这个问题。
>
> >>> C++ FAQ上就给一句话"只要你delete this以后别再碰this就可以,但是不推荐这么干"
>
> >>> 但是实际上有N多商业实现和库会用delete this。举个某著名的GUI库,非模态对话框在关闭时就是一句delete this。
>
> >>> 此问题的关键是那个动词"碰"(touch)什么叫碰?调用虚函数,访问成员变量等等都是touch。
>
> >>> 不过我个人觉得面试时问语言细节不好。这样会filter出有经验的人不假,但是经验少,有创造力的人往往被filter掉了。
> >>> 所以我面试时一般问开放问题。不像选择题那样非A就是B,一般人都会回答出,但是有的答案是O(N^2)的,有的是O(logN)的
> >>> 有的是O(1)的。这样就把水平分出来了。
>
> >> --
> >> My Blog:http://jeffchen.cn
>
> > --
> > -- ----
> > 此致,
> > 敬礼!
> > -----
> > Michae Zhou(周中良)

> > MSN:z_zhongli...@hotmail.com <MSN%3Az_zhongli...@hotmail.com>

jinhu wang

unread,
Dec 10, 2009, 12:42:24 AM12/10/09
to pon...@googlegroups.com
那就给你个不本质的
 
#include <iostream>
using namespace std;
struct B
{
 void release()
 {
  delete this;
  cout<<"hello world!"<<endl;
 }
 void operator delete(void*)
 {
 }
 ~B()
 {
  delete this;
  cout<<"release world!"<<endl;
 }
};
   
int   main()  
{  
   
   ((B*)NULL)->release();
   cout<<"..........~B()"<<endl;
   ((B*)NULL)->~B();
   return 0;
}  

 

2009/12/10 许海斌 <this...@gmail.com>

fireflyc

unread,
Dec 10, 2009, 1:32:29 AM12/10/09
to TopLanguage
我跟踪了一下代码,编译器是VC2008。
从汇编上看,delete this的时候它去调用了析构函数。
那么其实如下代码
Mytest *test = new MyTest();
test->deleteMe();
test->printInfo();
delete test;

是没有问题的,但这个只是侥幸而已。上述代码其实等于
Mytest *test = new MyTest();
delete test;
test->printInfo();

注意第二句,已经释放了空间,可是第三句运气好的话还能执行。因为test指针的空间在交给操作系统之后暂时并不会被覆盖掉,这时候你去调用
printInfo,会得到一个正确的打印信息。但是。。。这个野指针。。。。。。会在某一天出错。。野指针比Java的空指针更万恶。


On 12月9日, 下午6时08分, pongba <pon...@gmail.com> wrote:
> 今天在很久不上的Reddit上看到一个热帖:最佳C++面试题一道:
>
> Q:能否在成员函数中delete this?
>
> 作者的解释是,对于没有遇到过这个问题的人,这个问题比较考底层知识,同时也考察思路。
>
> 参考:

> 原文:http://blogs.windwardreports.com/davidt/2009/12/the-best-c-interview-...
> reddit:http://www.reddit.com/r/programming/comments/ac1q9/the_best_c_intervi...

jinhu wang

unread,
Dec 10, 2009, 1:36:54 AM12/10/09
to pon...@googlegroups.com
怎么还运气啊,好好看看大家的回复吧。printInfo();如果不是虚函数,如果没有写成员变量,永远不会出错,跟你的运气没关系。。

2009/12/10 fireflyc <fire...@gmail.com>

jinhu wang

unread,
Dec 10, 2009, 1:40:27 AM12/10/09
to pon...@googlegroups.com
语言的本质就摆在那里了。
普通成员无非是比全局函数或静态成员函数多了个this参数,this参数无效了,不代表函数无效了。
虚函数是由属于this的vptr间接索引的,this无效了,vptr也就废了。
明白了这些,this这个参数的有效性在什么时候影响到你的对象也就很明朗了。
2009/12/10 fireflyc <fire...@gmail.com>

Kenny Yuan

unread,
Dec 10, 2009, 1:44:10 AM12/10/09
to pon...@googlegroups.com
在那个鼻屎抠下来都舍不得扔的年代,曾经出现过这样的模式

手段:用0指针,强转,然后调用member function(要求此member function不访问this)
目的:模拟static member function

Kenny Yuan

unread,
Dec 10, 2009, 1:44:54 AM12/10/09
to pon...@googlegroups.com
Sorry忘了回复,确实是不可以,有特例:IEEE 754定义的NaN

2009/12/10 sagasw <sag...@gmail.com>

jinhu wang

unread,
Dec 10, 2009, 1:49:00 AM12/10/09
to pon...@googlegroups.com
那NaN为何就不能用memcmp了呢?嗯,虽然有些平台下同为NaN的两个数判等会返回false。但是对于二进制意义上的判等本身是没有问题的吧。

2009/12/10 Kenny Yuan <yuank...@gmail.com>

sagasw

unread,
Dec 10, 2009, 2:55:32 AM12/10/09
to pon...@googlegroups.com
这道题值得讨论,NaN != NaN
不满足题意。

Nan Hu

unread,
Dec 9, 2009, 10:41:34 AM12/9/09
to pon...@googlegroups.com
没有问题,成员函数编译后this指针是用ecx寄存器传进去的.其实就相当于这个函数的一个参数.当然可以delete.
类似下列的代码
...
push 1
push 2
mov ecx,this
call sub_fun
...

YunjingXu

unread,
Dec 9, 2009, 3:21:56 PM12/9/09
to TopLanguage
在析构函数里执行delete this,它会去调用this的析构函数,后者又执行delete this如此不断嵌套,然后就
segmentation fault了

On 12月9日, 上午6时54分, 周龙亭 <njdragon...@gmail.com> wrote:
> 1. 对象不是通过 new 创建出来的
> 2. 在析构函数里调用 delete this
>
> 上面两种情况会怎么样?

Siliang Wang

unread,
Dec 9, 2009, 10:19:06 PM12/9/09
to pon...@googlegroups.com
这道题确实考的有点细了,不过确实能考察对语言掌握的深入程度。即使所谓的开放性问题也很难考察创造力,像各种算法题,其实很大程度取决于被面试者原来接触没接触过相似题型,而不是有多大的创造力。

2009/12/10 liuxinyu <liuxi...@gmail.com>

Siliang Wang

unread,
Dec 10, 2009, 4:40:36 AM12/10/09
to pon...@googlegroups.com
由于delete NULL不执行有效地操作,所以用NULL来调用dtor才可以正确运行。而对于实际分配的对量,如果dtor里面有delete this;就回造成互相递归的调用,使程序崩溃。

2009/12/10 jinhu wang <wangji...@gmail.com>

fireflyc

unread,
Dec 10, 2009, 11:40:22 AM12/10/09
to TopLanguage
但是调用的
delete test;
同样的汇编代码怎么解释?

On 12月10日, 下午2时36分, jinhu wang <wangjinhu...@gmail.com> wrote:
> 怎么还运气啊,好好看看大家的回复吧。printInfo();如果不是虚函数,如果没有写成员变量,永远不会出错,跟你的运气没关系。。
>

> 2009/12/10 fireflyc <firef...@gmail.com>

raof01

unread,
Dec 10, 2009, 9:15:44 PM12/10/09
to TopLanguage
可不可以说:只要后面不需要用到this实例,就没有问题。

On Dec 9, 10:05 pm, jinhu wang <wangjinhu...@gmail.com> wrote:
> 依赖于后面的调用。
> 后面没有涉及到对象资源性的调用一般就没有问题:资源包括成员变量、虚函数等
>
> 2009/12/9 pongba <pon...@gmail.com>


>
> > 今天在很久不上的Reddit上看到一个热帖:最佳C++面试题一道:
>
> > Q:能否在成员函数中delete this?
>
> > 作者的解释是,对于没有遇到过这个问题的人,这个问题比较考底层知识,同时也考察思路。
>
> > 参考:
> > 原文:
> >http://blogs.windwardreports.com/davidt/2009/12/the-best-c-interview-...
> > reddit:
> >http://www.reddit.com/r/programming/comments/ac1q9/the_best_c_intervi...
>
> > 其实我想问问大家遇到的类似最佳面试题:语言相关和语言无关的都可。
>
> > --
> > 刘未鹏(pongba)

jun lin

unread,
Dec 10, 2009, 10:43:20 PM12/10/09
to pon...@googlegroups.com
如果我面试,我直接问面试人员以后工作时候要解决的问题,控制能在一上午完成的那种,
然后看被面试者是怎么解决这个问题的。要求面试者来之前先在优盘或者自己的笔记本里搭配好开发环境。
比如,做一个简单的usb通讯协议,然后保证该协议的性能达到某个地步。。。

2009/12/11 raof01 <rao...@gmail.com>

jinhu wang

unread,
Dec 10, 2009, 10:43:32 PM12/10/09
to pon...@googlegroups.com
基本可以这么说,只要不去用this无效资源就行。读读还是可以的

2009/12/11 raof01 <rao...@gmail.com>

xpol

unread,
Dec 15, 2009, 10:16:58 AM12/15/09
to TopLanguage
有见地!

过话又说回来,"银弹"在国内普通人不知道是干什么东西。

On Dec 9, 8:08 pm, Tinyfool <tinyf...@gmail.com> wrote:
> 银价狂升,所以现在都用铅做子弹了,所以没有银弹

xpol

unread,
Dec 15, 2009, 10:22:39 AM12/15/09
to TopLanguage

On Dec 9, 6:08 pm, pongba <pon...@gmail.com> wrote:

> 其实我想问问大家遇到的类似最佳面试题:语言相关和语言无关的都可。

我遇到过一个C++的:

struct A{
virtual void foo(void)
{
}
};

struct B : public A
{
B()
{
foo(); // 这里会发生什么?
}
virtual void foo(void)
{
}
};

jinhu wang

unread,
Dec 15, 2009, 8:59:51 PM12/15/09
to pon...@googlegroups.com
发生函数调用。
还是考查vptr的。
vptr作为语言系统隐藏的参数,是实现多态的核心内容之一。它的被初始化顺序是沿着基类到派生类变化的(假设编译器是这么实现的),也就是说如果A的构造函数里调用的虚函数属于类A的表,在B的构造函数里调用的虚函数,属于类B,从另一个角度看也就是说在构造过程中vptr是变换的,不具备多态性。

2009/12/15 xpol <xpo...@gmail.com>

Zhiming G

unread,
Dec 16, 2009, 11:43:50 AM12/16/09
to pon...@googlegroups.com
gcc -S 显示, B()中调用的foo()函数不是在运行时通过vptr表获取的, 而是直接调用B::foo().
另外, B::vptr的初始化也是在A()和B()之间, 所以调用
    (***(void(***)(void))(this))(); //直接去vptr中的内容
结果也是调用B::foo()

2009/12/15 xpol <xpo...@gmail.com>

Shuo Chen

unread,
Dec 16, 2009, 1:05:14 PM12/16/09
to TopLanguage
你面试过多少人?拒了多少人?

Shuo Chen

unread,
Dec 16, 2009, 1:17:45 PM12/16/09
to TopLanguage
标准 12.7 p3 有明确规定:

Member functions, including virtual functions (10.3), can be called
during construction or destruction
(12.6.2). When a virtual function is called directly or indirectly
from a constructor (including from the
mem-initializer for a data member) or from a destructor, and the
object to which the call applies is the
object under construction or destruction, the function called is the
one defined in the constructor or
destructor's own class or in one of its bases, but not a function
overriding it in a class derived from the constructor
or destructor's class, or overriding it in one of the other base
classes of the most derived object
(1.8). If the virtual function call uses an explicit class member
access (5.2.5) and the object-expression
refers to the object under construction or destruction but its type is
neither the constructor or destructor's
own class or one of its bases, the result of the call is undefined.

jun lin

unread,
Dec 16, 2009, 6:54:14 PM12/16/09
to pon...@googlegroups.com
哈,被你问倒了。

2009/12/17 Shuo Chen <gian...@gmail.com>

pongba

unread,
Dec 23, 2009, 1:07:17 AM12/23/09
to pon...@googlegroups.com


2009/12/10 Siliang Wang <wangsi...@gmail.com>
即使所谓的开放性问题也很难考察创造力,像各种算法题,其实很大程度取决于被面试者原来接触没接触过相似题型,而不是有多大的创造力。

很赞同。

Tinyfool

unread,
Dec 23, 2009, 1:24:14 AM12/23/09
to pon...@googlegroups.com
网上流传一个五个小朋友,三刀来分一个蛋糕的问题。后来,捅死一个小朋友,然后两刀平分的方案成为主流。

有阵子tw上面有人问这个问题,人人都说,答案是“捅死一个小朋友,然后两刀平分”

我觉得无趣,就说,拿着刀威胁老板,让他再给我们4个蛋糕。

然后居然有人过来,说,你这个错了,正确答案是“捅死一个小朋友,然后两刀平分”

无趣啊,脑筋急转弯居然有了固定答案了,真是伟大神奇的天国,所以,那天我出了好几个方案,包括血洗全部小朋友,拿着蛋糕跑路…

这是别人的记录


那天笑翻了tw上一众人等,包括我自己。

面试题问题亦如是,当创意面试题都变成了风行,也有人去背答案,我们应该是笑翻呢?还是悲从中来呢?

Kenny Yuan

unread,
Dec 23, 2009, 1:50:02 AM12/23/09
to pon...@googlegroups.com
很明显,你对刀的定义和我的不同,参看图片: mouserine


2009/12/23 Tinyfool <tiny...@gmail.com>
500x_mouserine.jpg

Tinyfool

unread,
Dec 23, 2009, 2:18:10 AM12/23/09
to pon...@googlegroups.com
恩,你这个刀倒是可以进一步简化问题

2009/12/23 Kenny Yuan <yuank...@gmail.com>



--
Tinyfool的开发日记 http://www.tinydust.net/dev/
代码中国网 http://www.codechina.org
myTwitter: http://twitter.com/tinyfool
Reply all
Reply to author
Forward
0 new messages