首页
社区
课程
招聘
[分享]超级巡警的面试
发表于: 2012-3-26 18:29 13602

[分享]超级巡警的面试

2012-3-26 18:29
13602
收藏
免费 0
支持
分享
最新回复 (129)
雪    币: 585
活跃值: (583)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
26
个人观点,仅供参考。。。
2012-3-26 19:01
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
27
韬哥跑超级巡警去了?
2012-3-26 19:16
0
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
28
都是些  苦逼的 程序员。。。。。。。。。
2012-3-26 19:16
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
29
谢谢关心,没在巡警了。
2012-3-26 19:17
0
雪    币: 88
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
每个人看每件事的观点是不同的,不是说你觉得是什么就一定是什么的,要看别是以什么眼光去看的。

另外就是我觉得从你们聊天的内容来看,我觉得楼主不适合出去给别人打工。

面个试而已,被pass掉也很正常嘛,谁没被pass过呢,心态放好点吧。
2012-3-26 19:24
0
雪    币: 1645
活跃值: (2801)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
31
我应聘的时候,我到是帮人解决了不少技术问题,呵呵,不要把现有的技术看得太重,应该努力追求更高的技术。技术是身外之物,我一直不把技术当回事,我知道的,我都教给了,我旁边的人
2012-3-26 19:29
0
雪    币: 202
活跃值: (69)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
32
那句*this=obj,错是没有错,下面已经定义了拷贝构造,只是不规范。
code review的时候出现这样的代码会被骂的。
不知道killer是不是想招你进去做云呢?呵呵
2012-3-26 19:37
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
A( A &objA )
   {
     *this = objA;   // 他们说这里这样用错了。我无语了。
   };

   void operator=( A &objA )
   {
     m_nTest = objA.m_nTest;
   };
----------------------------------------------
逆向我不懂。不过C++看来比巡警厉害一点

*this = objA 本身肯定是对的,不存在说啥子简单的对,复杂的就不对,因为你重载了=运算符

但可惜的是=运算符重载有错误
不应该是void operator=
应该是 A & operator=

你写成 void operator=  ,在你的例子中正确,是因为这里实际上先调用了默认构造函数。(这时,你运行能跑到正确的结果就仅仅是因为A是简单对象,如果A有复杂成员,如指针,就会出问题了。)
2012-3-26 19:40
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
34
终于给出代码了
2012-3-26 19:42
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
始终觉得把面试题目直接给出还是有些欠妥的
菜鸟路过,就无视吧
2012-3-26 19:43
0
雪    币: 596
活跃值: (449)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
36
编码习惯问题,深拷贝与浅拷贝
2012-3-26 19:45
0
雪    币: 128
活跃值: (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
37
33L vcvcc
说的详细
我本人也喜欢这样用,不喜欢两个函数都一个一个成员的赋值;
但是那个重载=要写正确了
2012-3-26 19:50
0
雪    币: 585
活跃值: (583)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
38
原题 是A& operator=( A &objA )而不是void operator=( A &objA )
我这里只是举个例子,
如果我在构造函数里也m_nTest = objA.m_nTest;,operator=函数里也有m_nTest = objA.m_nTest;
是不是就重复了,代码冗余了?如果需要改这一句m_nTest = objA.m_nTest的话,就需要改两次,是不是很麻烦?如果改代码的人只改了一处,而另外一处没改,程序是不是就有bug了?

还有,我没有被pass,所以发这个帖子也不存在什么其他原因。

我只是觉得如果超级巡警是真的招聘的话,就不会这样不给其他题目了。
我只是强烈怀疑他这样做的动机。
2012-3-26 20:18
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
原题 是A operator=
----------------------
^_^,巡警出题的人真是不小心啊,这样会产生临时变量,并调用拷贝构造函数。效率很是问题。
另外,如果又实现成拷贝构造函数中调用=操作符,那岂不是死循环了??? stack overflow
(没有测试过哈....)
2012-3-26 20:31
0
雪    币: 88
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
很正常的,安全公司一般都要求开发的都要多多少少懂点分析,做分析的多少也要懂点开发。除非你真的在某一方面确实很牛。

找工作什么的,毕竟是去给别人打工嘛,语气还是不能太拽了,毕竟不是你去招别人。所以即便是别人的要求自己不能接受就算了呗。

如果给你的东西你做出来了而别人反悔挑剔不要你,那是别人人品的问题。
2012-3-26 20:32
0
雪    币: 585
活跃值: (583)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
41

ls的很淡定,学习,哈哈
2012-3-26 20:41
0
雪    币: 585
活跃值: (583)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
42
是A& operator=( A &objA )

我刚打掉了一个
2012-3-26 20:43
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
43
你的代码要是我传一个NULL,不知道是不是会崩溃。,其实如果发现题目有错,完全可以帮他更正的,这样又多拿一分
2012-3-26 20:45
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
44
我很赞同zhych的话:)
话说killer也叫我分析过熊猫云。。
2012-3-26 20:46
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
哈哈,果然死循环了!!! 但是没有溢出喃

[root@localhost root]# vi pediy.cpp

#include <iostream>

class A
{
protected:
    int m_n;

public:
    A():m_n(1)
    {
        std::cout << "default ctor" << std::endl;
    }

    A(const A& a)
    {
        std::cout << "copy ctor" << std::endl;
        *this = a;
    }

    A operator=(const A& a)
    {
        std::cout << "operator =" << std::endl;
        if (this == *a)
            return *this;
        m_n = a.m_n;
        return *this;
    }
};

int main(void)
{
    A a;   
    A b(a);
}

[root@localhost root]# g++ pediy.cpp
[root@localhost root]# ./a.out
default ctor
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
copy ctor
operator =
......
2012-3-26 20:49
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
你能传空引用???
2012-3-26 20:52
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
47
打内心佩服VCVC,我继续努力
2012-3-26 20:52
0
雪    币: 1981
活跃值: (771)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
48
貌似LZ不泄于搞这种分析
2012-3-26 20:53
0
雪    币: 585
活跃值: (583)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
49
再次更正下,超级巡警的题目是  A& operator=( A &objA ),
45楼的不要再yy了。

我很热爱分析啊,没有不屑,
只是不想分析一些莫名其妙的东西。
2012-3-26 20:56
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
50
修正Bug,没有测试,自己测试
#include <iostream>

class A
{
protected:
    int m_n;

public:
    A():m_n(1)
    {
        std::cout << "default ctor" << std::endl;
    }

    A(const A& a)
    {
        std::cout << "copy ctor" << std::endl;
        *this = a;
    }

    A operator=(const A& a)
    {
        std::cout << "operator =" << std::endl;
        if (this == *a)
            return NULL;
        m_n = a.m_n;
        return *this;
    }
};

int main(void)
{
    A a;   
    A b(a);
}
2012-3-26 20:57
0
游客
登录 | 注册 方可回帖
返回