能力值:
( LV13,RANK:290 )
|
-
-
26 楼
个人观点,仅供参考。。。
|
能力值:
( LV9,RANK:140 )
|
-
-
27 楼
韬哥跑超级巡警去了?
|
能力值:
( LV3,RANK:30 )
|
-
-
28 楼
都是些 苦逼的 程序员。。。。。。。。。
|
能力值:
( LV15,RANK:520 )
|
-
-
29 楼
谢谢关心,没在巡警了。
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
每个人看每件事的观点是不同的,不是说你觉得是什么就一定是什么的,要看别是以什么眼光去看的。
另外就是我觉得从你们聊天的内容来看,我觉得楼主不适合出去给别人打工。
面个试而已,被pass掉也很正常嘛,谁没被pass过呢,心态放好点吧。
|
能力值:
( LV4,RANK:50 )
|
-
-
31 楼
我应聘的时候,我到是帮人解决了不少技术问题,呵呵,不要把现有的技术看得太重,应该努力追求更高的技术。技术是身外之物,我一直不把技术当回事,我知道的,我都教给了,我旁边的人
|
能力值:
( LV3,RANK:30 )
|
-
-
32 楼
那句*this=obj,错是没有错,下面已经定义了拷贝构造,只是不规范。
code review的时候出现这样的代码会被骂的。
不知道killer是不是想招你进去做云呢?呵呵
|
能力值:
( 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有复杂成员,如指针,就会出问题了。)
|
能力值:
( LV15,RANK:520 )
|
-
-
34 楼
终于给出代码了
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
始终觉得把面试题目直接给出还是有些欠妥的
菜鸟路过,就无视吧
|
能力值:
( LV12,RANK:320 )
|
-
-
36 楼
编码习惯问题,深拷贝与浅拷贝
|
能力值:
( LV5,RANK:60 )
|
-
-
37 楼
33L vcvcc
说的详细
我本人也喜欢这样用,不喜欢两个函数都一个一个成员的赋值;
但是那个重载=要写正确了
|
能力值:
( 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,所以发这个帖子也不存在什么其他原因。
我只是觉得如果超级巡警是真的招聘的话,就不会这样不给其他题目了。
我只是强烈怀疑他这样做的动机。
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
原题 是A operator=
----------------------
^_^,巡警出题的人真是不小心啊,这样会产生临时变量,并调用拷贝构造函数。效率很是问题。
另外,如果又实现成拷贝构造函数中调用=操作符,那岂不是死循环了??? stack overflow
(没有测试过哈....)
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
很正常的,安全公司一般都要求开发的都要多多少少懂点分析,做分析的多少也要懂点开发。除非你真的在某一方面确实很牛。
找工作什么的,毕竟是去给别人打工嘛,语气还是不能太拽了,毕竟不是你去招别人。所以即便是别人的要求自己不能接受就算了呗。
如果给你的东西你做出来了而别人反悔挑剔不要你,那是别人人品的问题。
|
能力值:
( LV13,RANK:290 )
|
-
-
41 楼

ls的很淡定,学习,哈哈
|
能力值:
( LV13,RANK:290 )
|
-
-
42 楼
是A& operator=( A &objA )
我刚打掉了一个
|
能力值:
( LV15,RANK:520 )
|
-
-
43 楼
 你的代码要是我传一个NULL,不知道是不是会崩溃。  ,其实如果发现题目有错,完全可以帮他更正的,这样又多拿一分
|
能力值:
( LV8,RANK:120 )
|
-
-
44 楼
我很赞同zhych的话:)
话说killer也叫我分析过熊猫云。。
|
能力值:
( 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 =
......
|
能力值:
( LV2,RANK:10 )
|
-
-
46 楼
你能传空引用???
|
能力值:
( LV15,RANK:520 )
|
-
-
47 楼
打内心佩服VCVC,我继续努力
|
能力值:
( LV13,RANK:420 )
|
-
-
48 楼
 貌似LZ不泄于搞这种分析
|
能力值:
( LV13,RANK:290 )
|
-
-
49 楼
再次更正下,超级巡警的题目是 A& operator=( A &objA ),
45楼的不要再yy了。
我很热爱分析啊,没有不屑,
只是不想分析一些莫名其妙的东西。
|
能力值:
( 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);
}
|
|
|