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

[分享]超级巡警的面试

2012-3-26 18:29
13397
收藏
免费 0
支持
分享
最新回复 (129)
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
101
哪里是什么大牛,,,纯属讨论,娱乐大众。

技术上我只认对的,其他不管。

顶到100楼,然后洗澡睡觉。呵呵
2012-3-26 23:22
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
102
水平一目了然。
2012-3-27 08:57
0
雪    币: 703
活跃值: (327)
能力值: (RANK:380 )
在线值:
发帖
回帖
粉丝
103
killer来大连一起小坐了一会,感觉人不错。根据网上朋友的评价,我认为技术上没有什么问题。至于发的考试题目比较大,我觉得可能是找带领团队的人而不是一般的员工,那么给一个大一点的题目是很正常的事情。楼主是应聘的那么心态就要放正,你可以不去也可以私下沟通为什么认为你的代码错了,把考试的题目发上来就不太合适了。应该看到机遇和挑战,而不是把别人想得那么不堪,个人言论仅供参考。
2012-3-27 15:01
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
104
昨天还很爽,今天看到你又要注销帐号,这情感起伏大呀
2012-3-27 15:41
0
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
105
C++代码如看天书。。。
2012-3-27 16:58
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
106
巡警这道面试题,我也是知道的,和楼主写的测试题有些出入,并且里面是包含有指针的。如果使用楼主的拷贝构造会出现什么问题呢,两个对象里的成员指针指向同一个内存,相信你写代码的话,如果是指针是申请的内存都会释放,那么这样会出现什么情况,假设拷贝构造传进来的对象的成员指针是申请的一个堆空间,那么会出现两个指针指向同一个堆空间,析构的时候同一块堆内存将会释放两次,导致软件崩溃。但是你可能会认为加个引用计数就好了,但是你写出来的测试代码也没有引用计数的使用,所以在这样环境下,在拷贝构造里单独使用*this = objA是有隐含问题的。
2012-3-30 09:26
0
雪    币: 862
活跃值: (329)
能力值: ( LV9,RANK:165 )
在线值:
发帖
回帖
粉丝
107
C++自学的已经快忘光了。。。
2012-3-30 09:48
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
108
拜托,为什么要 两个对象里的成员指针指向同一个内存,需要自己new内存啊,两个对象里的数据都是各自new的,兄弟
2012-3-30 12:30
0
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
109
两个对象里的成员指针指向同一个内存,不知道你写的题目里面,哪里能看出会自己new内存?你不会认为*this = objA会把成员指针自动new内存,然后把指针指向的内容拷贝过去?况且你写的测试题里重载=放的是对象,据我所知,巡警的题目这里放的不是对象,所以不要认为*this = objA会调用到自己重载的=那里去。 是你自己写的代码让两个对象里的成员指针指向同一个内存了。
2012-3-30 12:47
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
110
给你什么题目 看的是你要多少工资
2012-3-30 22:42
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
111
友元成员只能访问 protect 属性的成员而不能访问 private 属性的成员。

protect 是可以和好友共享的,private 是私人珍藏。
2012-3-31 02:41
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
112
题目:实现类

class CMyCString
{
public:
        CMyCString(void);
        CMyCString( IN const CMyCString &clsSrc );
        ~CMyCString(void);

        CMyCString& operator=( IN const CMyCString &clsSrc );

        void Init( IN char *pSrc );

private:

        char        *m_pszStr;

};
2012-3-31 12:15
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
113
我的答案:

#include "StdAfx.h"
#include "MyCString.h"

void FreeBuffer( IN char* &pBuf )
{
        if( NULL != pBuf )
        {
                delete [] pBuf;
                pBuf = NULL;
        }
}

CMyCString::CMyCString(void)
{
        m_pszStr = NULL;
}

CMyCString::CMyCString( IN const CMyCString &clsSrc )
{
        m_pszStr = NULL;
        *this = clsSrc;
}

CMyCString::~CMyCString(void)
{
        FreeBuffer( m_pszStr );
}

CMyCString& CMyCString::operator=( IN const CMyCString &clsSrc )
{
        Init( clsSrc.m_pszStr );
        return *this;
}

void CMyCString::Init( IN char *pSrc )
{
        FreeBuffer( m_pszStr );

        if( NULL != pSrc )
        {
                int nLen = strlen( pSrc );
                if( nLen > 0 )
                {
                        m_pszStr = new char[ nLen + 4 ];
                        ZeroMemory( m_pszStr, sizeof(char) * ( nLen + 4 ) );
                        CopyMemory( m_pszStr, pSrc, sizeof(char) * nLen );
                }
        }
}

void Test()
{

        char szBuf[] = "125werw3";
        CMyCString clsA;
        clsA.Init( szBuf );

        CMyCString clsB;
        clsB = clsA;

        CMyCString clsC( clsA );

}
2012-3-31 12:16
0
雪    币: 93
活跃值: (41)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
114
LZ先查查KILLER是谁,  顺便也查查他公司的WOLLF(不知道现在还在不在?)
还有冰河
2012-3-31 12:56
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
115
我也认为killer不是楼主说的那样的人,楼主太主观了
2012-3-31 13:01
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
116
[QUOTE=guxinyi;1059169]我的答案:

#include "StdAfx.h"
#include "MyCString.h"

...

void Test()
{

  char szBuf[] = "125werw3";
  CMyCString clsA;
  clsA.Init( szBuf );

  CMyCString clsB;
  clsB = clsA;

  CMyCString clsC( clsA );

}[/QUOTE]

明显不能支持下面这种用法。
void Test()
{

  char szBuf[] = "125werw3";
  CMyCString clsA;
  clsA.Init( szBuf );

{
    CMyCString clsB(clsA);
}

  CMyCString clsC( clsA );

}
2012-3-31 13:12
0
雪    币: 1149
活跃值: (833)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
117
x-scan 冰河....这些都是 前辈之作啊...
2012-3-31 13:17
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
118
[QUOTE=cntrump;1059197]明显不能支持下面这种用法。
void Test()
{

  char szBuf[] = "125werw3";
  CMyCString clsA;
  clsA.Init( szBuf );

{
    CMyCString clsB(clsA);
}

  CMyCString cls...[/QUOTE]

可以支持的,

自己下工程
上传的附件:
2012-3-31 14:11
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
119
支持是支持,可是编码已经不标准了,自己玩玩可以,面试就不要这么写了。
2012-3-31 14:15
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
120
我用的vs2008
难道其他编译器会出错?
2012-3-31 14:16
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
121
哪里不标准了??
2012-3-31 14:17
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
122
void Test()
{

  char szBuf[] = "125werw3";
  CMyCString clsA;
  clsA.Init( szBuf );

{???????????????
    CMyCString clsB(clsA);
}???????????????

  CMyCString cls...
2012-3-31 14:18
0
雪    币: 585
活跃值: (568)
能力值: ( LV13,RANK:290 )
在线值:
发帖
回帖
粉丝
123
我看不出那一句有什么不标准的,
不解
2012-3-31 14:19
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
124
不要和我说某某书上写的那两个括号有某某属性。我想一定是看书看多了,不如直接照搬。
2012-3-31 14:22
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
125
代码应该清晰,明了;这个代码很清晰,但是明了。还是自己玩玩可以。实在找不到什么借口来评论了
2012-3-31 14:23
0
游客
登录 | 注册 方可回帖
返回
//