V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
justou
V2EX  ›  程序员

新同事的考核, 一题也不会

  •  1
     
  •   justou · 2019-07-18 13:22:16 +08:00 · 19910 次点击
    这是一个创建于 1716 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为要离开现公司, 两个月前招到一个来接替我的小伙子, 此子只用过 C, 做了半年嵌入式, 我对他进行了两个月的 C++培训, 带着他看 C++ primer 这本书(这本书既厚又杂,想着有我帮着梳理的话亦可事半功倍, 感觉这本书不太好, 但是又没找到可替代的又是中文版的 C++入门书), 让他完成一些编程任务, 帮他 debug 并解惑, 更多的是解释原理: 为什么是这样的.

    现在到考核期了, 公司要求用英文出题考核他, 题如下:

    C++ Questions

    Single Choice

    (3 points each, 15 points total)

    1. Which one of the following C++ codes is correct C++11 expression?

      • [ ] A. const int i{3.14};
      • [ ] B. int & i = 233;
      • [ ] C. const int& i{3.14};
      • [ ] D. constexpr double pi{3.14};
    2. which one of the following is valid lambda expression usage?

      • [ ] A.

        int i = 10;
        auto f = [](){ return i+1;};
        f();
        
      • [ ] B.

        int i = 10;
        auto f = [](int i){ return i+1;};
        f();
        
      • [ ] C.

        int i = 10;
        auto f = []{ return i+1;};
        f();
        
      • [ ] D.

        int i = 10;
        auto f = [i]{ return i+1;};
        f();
        
    3. What does public inheritance mean?

      • [ ] A. Implementation details
      • [ ] B. Private interfaces
      • [ ] C. Composition
      • [ ] D. Is-a relationship
    4. What does private inheritance mean?

      • [ ] A. Implementation details

      • [ ] B. Private interfaces

      • [ ] C. Composition

      • [ ] D. Is-a relationship

    5. Suppose we have two classes(both with default constructors): class Base{...};, class Derived: public Base {...};, which one of the following usage is correct?

      • [ ] A. Derived* d = new Base;
      • [ ] B. Derived* d = new Base{};
      • [ ] C. std::unique_ptr<Base> ptr = std::make_unique<Derived>();
      • [ ] D. std::unique_ptr<Derived> ptr = std::unique_ptr<Derived>(new Base);

    Answer the following questions

    (5 points each, 25 points total)

    1. Use range for syntax to add 10 to each elements of the following vector:

      auto numbers = std::vector<int>{1, 2, 3, 4, 5};

      
      
    2. Use std::for_each to answer the previous question.

      
      
    3. Suppose Buffer* create_buffer() is some library function to allocate resources, and bool release_buffer(Buffer* buffer) is the counterpart to free the allocated resources, use std::unique_ptr to manage the resources.(hint: when the std::unique_ptr object is out of scope, the allocated resources are automatically released.)

      
      
    4. Suppose class Object must have a copy constructor, a copy assign operator, a move constructor, a move assign operator and a destructor, write down their signatures .

      
      
    5. RAII is a key C++ programming technique, write down your understanding of RAII (not the literal meaning)

      
      

    我参考当初他问过的问题以及给他的解答出的, 当然考核只是个形式, 所以我直接把题给他先看看, 让他先尝试着做, 结果一题不会! 苦口婆心两个月 == 0.

    有一些想法:

    1. 想 21 天精通 C++, 得参考某张漫画里面来, 一时找不到图了, 就是最后发明时光机穿越回到学 C++第 21 天, 然后捅死自己那张漫画;
    2. 新同事学习方法很有问题, 每次我跟他讲一些原理的时候让他记一下, 他说这个很显然啊, 没必要记, 然后下次问他相同问题, 对方回答无非是"搞忘了", "你跟我讲过这个吗?" ,根本带不动!
    3. 不梳理知识, 只在书里面随便勾勾画画, 当然这本书等于没看;
    4. 题可能出得太难了, 不适合 C++初学者, 但是平时这些主题讲得特别多, 现在看来对方的"嗯嗯, 理解了"明显是在敷衍我了, 其实那根本是在敷衍自己;
    5. 英文太差, 其实一开始题都没读懂, 我一个个地解释了一遍, 还是不会做;
    6. 搜索引擎对他来讲是摆设.
    7. 人不笨, 但是思维方式已经出现严重问题了, 想甩锅给他之前受过的应试教育. 平时给他讲了很多学习方法跟思考方式, 估计也早成耳边风了.

    考核肯定是过不了的了, 最后估计会留在公司打杂, 因为最近又招了个新的人, 还没来报道, 看简历是个硕士, 虽然没写过 C++, 但会 python 跟 java, 在学校也搞过正儿八经的研究. 这个带起来应该能很快起飞, 但已经等不到了, 今天是在该公司的最后一天, 只能祝福着这位"带不动同事", 平静地离开了.

    第 1 条附言  ·  2019-07-18 17:22:58 +08:00

    单选

    1. D

      考察对C++11 Uniform Initialization的理解

      AC都是相同错误, 花括号初始化不允许有精度丢失的隐式转换, AC都将编译出错; 坚持使用花括号初始化变量, 一定程度上能避免隐式转换带来的bug, Explicit is better than implicit! B是C的干扰项, 同事很爽快的选中了C, 因为他确定不能像B这么干

    2. D

      C++ 的lambda着重给同事讲过, 告诉他原理可以看成是生成了一个只有编译器知道的匿名的可调用类(实现了operator() ), 捕获列表[]里有东西的话相当于这个类有字段, 捕获方式则决定了这些字段是如何初始化的, lambda的参数列表相当于operator()的参数列表. 把这些对应关系搞清楚了就不用去死记硬背lambda有几种写法了. A的return i + 1i未定义, B的f调用需要参数, C是A的干扰项, 同事觉得C肯定不对, 连括号()都没得, 选A! 公司Qt项目中大量使用lambda作为槽函数.

    3. D

      公有继承表示的是“is-a”的关系, class Dog: public Animal ..., DogAnimal

    4. A

      私有继承 class Television: private Radio, 电视机不是收音机, 只是想用收音机里面的一些现成的可用的功能, 电视机并不想让别人知道它借用了收音机的东西, 所以用私有继承, 是一种实现细节. 其实这是一种不太好的方式, 到处搜刮现成的实现来强行塞进来, 屎山不是一日建成的; 其实当想用C++的继承时就得三思是否可以构建一个健壮的继承层次, 设计的时候多考虑组合或者继承接口, 给同事讲解一个项目中某个地方为啥要用继承来实现时区分的两种继承方式, 他依稀记得是说过, 但是忘记了, 更糟糕的是他根本不认识里面的任何关键字单词...

    5. C

      通过基类指针来操纵子类实例啦. 同事一眼选中A, 他觉得B选项Base后面怎么能有个花括号, CD这么长, 先排除了

    其实通过跟他对每个选项的讨论, 我知道他只是想挑出正确答案, 并不是想搞清楚不对的选项为什么不对, 他的关注点完全不在考察点, 不理解这道题的意图, 当然很容易踩中故意设计的陷阱, 他也没辜负我出题时的坏心思, 所有陷阱全踩了

    问答参考(有些答案不止一种,满足要求即可)

    1.  for (auto& number: numbers){
       	number += 10;
       }
      
    2.  std::for_each(numbers.begin(), numbers.end(), 
                     [](int &number){ number += 10;});
      
    3.  auto ptr = std::unique_ptr<Buffer, decltype(&release_buffer)>(
                  create_buffer(), release_buffer);
      
    4.  class Object{
       	Object(const Object& obj); // copy constructor
           Object& operator= (const Object& rhs); // copy assign operator
           Object(Object&& object);   // move constructor
           Object& operator= (Object&& rhs); // move assign operator
           ~Object();  // destructor
       };
      
    5. RAII的思想为: 在构造器中获取资源, 建立类的不变量(invariant), 在析构器中释放获取过的资源; 通过使用局部变量这种方式来管理资源, 当局部变量出作用域时, 获取的资源将被变量的析构函数自动释放

    题跟答案都是根据自己的理解编造的, 欢迎提出不同的观点

    第 2 条附言  ·  2019-07-19 13:59:34 +08:00

    统一回复下"求带, 求指导"朋友:

    1. 本人随时处在繁重的学习当中, 几乎是没时间的, 通过网络指导的话效率也太低了, 彼此的时间不应该这样浪费;

    2. 学编程的话没有太多诀窍, 多看多练多写多想, 我觉得最忌讳的是去死记硬背(但你通常可以通过思维导图来整理一些重要细节帮助理解记忆);

    3. 多问"为什么", 知识是客观存在的, 乃死物, 多问问它的来龙去脉, 怎么来的, 为什么要这样, 这样有什么好处, 如此这般才能接触到事物的真相和本质. 举个不太恰当的例子: 2019年7月19号早上你发现你家门口有一只陌生的猫, 如果只停留在表象"哇, 今早我家门口有只猫", 这件事可能你很快就忘了, 忘记了是哪天, 忘记了这只猫的颜色, 甚至忘记了在家门口见到一只猫的事情...如果多提出一些疑问: 这只猫哪来的? 什么品种? 公的母的? 猫主人是谁? 你甚至好奇的尾随它到了另一户人家门口, 发现猫的主人是个漂亮的姑娘, 以此发生了一段美妙的邂逅...之后你回忆起来, 这些场景历历在目, 如数家珍地跟自己的孩子讲述着你跟孩子他妈邂逅的过程...

    其实学知识很大程度上是在学历史, 这些知识不是平白无故出现的, 是为了解决具体问题而提出来的, 是从生活实践中抽象出来的, 所以很有必要了解其背景, 这样才能在运用知识上得心应手, 因为你清楚它的应用场景, 适用条件. 以C++来举例, C++一直在发展, 不断提出新标准, 新语法, 不断扩充的标准库, C++越来越臃肿遭人诟病, 太多的语法糖, 越来越难使用. 其实这个时候换一个角度看问题就好了: 为什么提出这个新语法? 出发点是什么? 解决了以前的什么痛点?为什么这样更好? 这可能需要你去关注标准委员会的动向, 他们的讨论, 他们的决策, 当然你也可以通过一些书籍文章了解到这些东西. 虽然可能不会去用新特性, 但是可以学到一些解决问题的思路, 一些设计理念. 也千万不要强行用上新特性(出于了解学习目的是可以的), 不能为赋新词强说愁, 个人认为使用新特性最好的时机是发现某个新特性正好解决了你的一些痛点.

    这第3点是自己这些年来自学的一些心得. 我是物理学出生, 但是专业学得稀烂, 很大程度上是因为接受不了那些突兀的, 毫无生机的, 压缩饼干似的知识. 以前学校的老师只是负责把这些东西分发给你充饥, 很显然我不屑于吃, 最后是饿死的. 后来, 尤其是工作这两年, 重新审视物理跟数学, 发现他们其实是一部超级燃的历史小说, 每个重大的理论定理后面都有一段脍炙人口的故事, 难怪以前有些老师让我们多看课外书, 扩充知识面, 我想他们说的课外书, 就是这些"历史书"吧, 当初一直错误地认为是"xxx题典", 这些方法论的花招式更多时候只有打发时间之用, 更重要的是知识的起源, 从历史的角度, 从认识论的角度来探讨知识, 这样才能真正修炼成自己的内功.

    1. 还是让自己可以流畅的读英文吧, 我对带的同事提升英语阅读的建议是: 你不是比较熟悉C嘛, 找一本C语言的英文的书, 从头开始看, 里面讲的东西你都比较熟悉了, 所以侧重点就在于看英语是怎么表达的, 学习专业词汇, 咬文嚼字地看, 坚持看完这样一本, 你以后就无所畏惧了. 一言蔽之: 找一本你熟悉的感兴趣的主题的英语书看完.

    2. 最后推荐一些个人喜欢的站点, 对C++或编程应该很有用.

    接下来几天忙于搬家, 没时间长篇大论的回复了, 你们饭后茶余看看就好, 祝大家快乐学习, 开心工作!

    173 条回复    2019-07-19 18:28:29 +08:00
    1  2  
    deepred
        1
    deepred  
       2019-07-18 13:25:51 +08:00   ❤️ 12
    哪有这么好的同事,还帮辅导你 c++
    fhsan
        2
    fhsan  
       2019-07-18 13:25:54 +08:00
    哦,以前交接的时候劝退过好几个新同事,吓得我以后交接的时候不敢讲太多。
    Vegetable
        3
    Vegetable  
       2019-07-18 13:26:00 +08:00   ❤️ 4
    楼主好人
    515576745
        4
    515576745  
       2019-07-18 13:29:06 +08:00 via Android   ❤️ 2
    做笔记是最好的学习方式。
    jdhao
        5
    jdhao  
       2019-07-18 13:32:57 +08:00 via Android
    楼主的英语表达不错,你的同事水平太差,不值得你费劲,这些问题自己自学应该就能搞定
    tankren
        6
    tankren  
       2019-07-18 13:37:49 +08:00
    楼主好人
    VoidChen
        7
    VoidChen  
       2019-07-18 13:38:01 +08:00
    话说 c++入门确实不好弄,之前工作需要要写一点,边看资料边写,结果一个地方传完参数忘了回收,结果就内存溢出了(压测对的时候才发现)。。。
    wsseo
        8
    wsseo  
       2019-07-18 13:38:05 +08:00
    我怎么没遇到这样的好人。
    Skypemifan
        9
    Skypemifan  
       2019-07-18 13:39:22 +08:00
    确实好人
    geelaw
        10
    geelaw  
       2019-07-18 13:39:42 +08:00 via iPhone   ❤️ 5
    抬个杠:不存在 single-choice question 这种表达,直接说 multiple-choice question 就行。
    zxq2233
        11
    zxq2233  
       2019-07-18 13:40:48 +08:00
    楼主是小姐姐
    Skypemifan
        12
    Skypemifan  
       2019-07-18 13:42:27 +08:00
    c++ primer 确实又多又杂 哈哈哈哈 明天我也要离职了
    LxExExl
        13
    LxExExl  
       2019-07-18 13:42:45 +08:00
    惭愧 cs 科班出身 工作 2 年

    现在一个题都做不出来了
    crisfun
        14
    crisfun  
       2019-07-18 13:43:38 +08:00 via iPhone
    英语真简单啊
    msaionyc
        15
    msaionyc  
       2019-07-18 13:47:51 +08:00
    态度问题,这题只要两个月没全部划水,怎么说几个选择题能选出来吧
    yueqiuge
        16
    yueqiuge  
       2019-07-18 13:54:54 +08:00
    @geelaw 如果要说明是多选的话就说 multiple choice with multiple answers 吗
    atom234
        17
    atom234  
       2019-07-18 13:56:21 +08:00
    建议楼主去辅导我的以为新同事,手动🐶头
    kidlfy
        18
    kidlfy  
       2019-07-18 13:57:44 +08:00
    emmmm 最近也在看这本书 惊觉我和那位大兄弟竟然一样的学习方法....在书里勾勾画画....所以有大神给个答案吗
    janus77
        19
    janus77  
       2019-07-18 13:57:52 +08:00
    你还辅导?要是我就一句话:自己弄懂,到时候要考,不过就走人吧
    然后看不看随他了,反正又不是我被开
    fy1993
        20
    fy1993  
       2019-07-18 14:02:54 +08:00
    楼主真心好人, 不过感觉你这同事不值得你这么费心的去带
    lucifer9
        21
    lucifer9  
       2019-07-18 14:07:18 +08:00
    为啥要招个只用过 C 完全没 C++ 经验的呢
    a566
        22
    a566  
       2019-07-18 14:09:37 +08:00
    好人啊 我怎么遇见不到啊
    bzshow1
        23
    bzshow1  
       2019-07-18 14:14:30 +08:00
    楼主招我吧
    Otho
        24
    Otho  
       2019-07-18 14:14:41 +08:00
    太依赖了
    bayker
        25
    bayker  
       2019-07-18 14:20:37 +08:00
    楼主在哪,能拜你为师吗,真心的
    pyscream
        26
    pyscream  
       2019-07-18 14:21:39 +08:00
    所以能贴个答案吗,感觉自己也答不上几道
    justou
        27
    justou  
    OP
       2019-07-18 14:23:49 +08:00
    @lucifer9 招不到人, 来面试的都是些基本符合需求的, 然后从里面选可培养性稍微强一点的

    @a566
    @fy1993
    @janus77 只要是愿意学习想学习的, 不管他多菜, 我都愿意带, 愿意跟他分享我的理解, 我发现当自己用某些方式把一个不懂的人讲得真正懂的时候自己也会在这个点上有更深的理解
    justou
        28
    justou  
    OP
       2019-07-18 14:25:37 +08:00
    我看这个同事每天看书挺带劲儿的, 以为他在很认真的看, 或许是真的在很认真的看, 但是知识吸收率太低了
    poplar50
        29
    poplar50  
       2019-07-18 14:25:47 +08:00 via Android
    楼主好人 两个月时间培训相比我们公司要求你啥都得飞速上手真的羡慕了
    justou
        30
    justou  
    OP
       2019-07-18 14:29:13 +08:00
    @bayker 即将离开重庆去深圳, 拜师不敢当, 我觉得多提问题就好, 放到网上合适的地方去, 自有"好为人师"的人来解答,
    @pyscream 稍后写上参考答案
    chaffy
        31
    chaffy  
       2019-07-18 14:33:48 +08:00
    这么好楼主哪里找
    silverbooker
        32
    silverbooker  
       2019-07-18 14:35:54 +08:00
    一题都不会可还行……菜的真实。
    Earl
        33
    Earl  
       2019-07-18 14:36:31 +08:00
    lz 好人。
    如果闭卷的话,我觉得一个才接触 c++两个月的,这些题目的确不一定能做出来。主要很多东西意思明白,但是正确的语法可能记不全。
    如果开卷的话,这些题目就不算难了。
    perfectlaugh
        34
    perfectlaugh  
       2019-07-18 14:37:29 +08:00
    试试看解答 要不然我的 C++都要生锈了
    1. D
    2. A
    3. D
    4. C
    5. C

    1.
    ```
    for (auto& number: numbers) {
    number += 10;
    }
    ```
    2.
    ```
    std::for_each(numbers.begin(), numbers.end(), [](auto& number) { number += 10; });
    ```
    3.
    ```
    class Object {
    Buffer* _buf;
    public:
    Object() {
    _buf = create_buffer();
    }
    ~Object() {
    release_buffer(_buf);
    }
    // It is better to use operator* though... Just in case
    Buffer* get_buf() {
    return _buf;
    }
    }

    // std::make_unique<Object>();
    ```
    4.
    ```
    class Object {
    //copy constructor
    Object(const Object& _other) {
    }
    //move constructor
    Object(Object&& _other) {
    }
    //copy assignment operator
    operator=(const Object& _other) {
    }
    //move assignment operator
    operator=(Object&& _other) {
    }
    //destructor
    ~Object() {
    }
    }
    ```
    5.
    Resource Acquisition Is Initialization
    Using OOP constructor and destructor to let resource allocate and deallocate properly. (?)
    EthanDon
        35
    EthanDon  
       2019-07-18 14:38:43 +08:00
    @justou 5555 复读过的人真心深有体会,学习方式、思维方式真的占了成绩大头!良好的学习方式和思维方式加上努力是个人都能上重本,稍微聪明一点再努力一点的都能上 211 了!

    复读的时候到了某个高考工厂,老师教了一套学习方法,自己又悟出来一点,成绩可谓突飞猛进!现在每每看到有人写方法论都会搜藏下来,平时自己也喜欢总结一下方法。
    perfectlaugh
        36
    perfectlaugh  
       2019-07-18 14:38:46 +08:00
    哎 上面的 operator 忘了 void...
    zcjfesky
        37
    zcjfesky  
       2019-07-18 14:39:23 +08:00 via Android
    @yueqiuge 常见的说法是 multiple answer question
    Yourshell
        38
    Yourshell  
       2019-07-18 14:39:36 +08:00
    一题都不会,没学过 cpp
    ooee2016
        39
    ooee2016  
       2019-07-18 14:43:57 +08:00
    公司真抠
    sangleft
        40
    sangleft  
       2019-07-18 14:44:08 +08:00
    一题都不会是过分了。

    两个月啃了十章多 primer,还是有不会的题,把书读薄确实不容易啊。。
    justforlook44444
        41
    justforlook44444  
       2019-07-18 14:45:09 +08:00
    @justou
    看 C++ primer 第三版我觉得好点。
    Woood
        42
    Woood  
       2019-07-18 14:46:15 +08:00
    从你提离职到你可以走,就一个月时间,带的人能不能接手雨女无瓜
    perfectlaugh
        43
    perfectlaugh  
       2019-07-18 14:46:34 +08:00
    没人推荐 cppreference.com 🐎
    sangleft
        44
    sangleft  
       2019-07-18 14:48:11 +08:00
    @perfectlaugh 第二是 D 吧?
    Aoerz
        45
    Aoerz  
       2019-07-18 14:49:06 +08:00 via Android   ❤️ 3
    perfectlaugh
        46
    perfectlaugh  
       2019-07-18 14:50:33 +08:00
    @sangleft 这是 closure 不是一般的函数 closure 可以拿当前函数的变数
    perfectlaugh
        47
    perfectlaugh  
       2019-07-18 14:53:02 +08:00
    xswl 这个图
    cxyfreedom
        48
    cxyfreedom  
       2019-07-18 14:53:20 +08:00
    凭以前 C 的经验,前四个应该是 DDDC 吧,后面不知道了
    legiorange
        49
    legiorange  
       2019-07-18 14:54:15 +08:00 via Android
    @justou 还招 java 吗。。kotlin groovy 都会的那种。。
    perfectlaugh
        50
    perfectlaugh  
       2019-07-18 14:55:10 +08:00
    @sangleft 完了 应该是 D
    perfectlaugh
        51
    perfectlaugh  
       2019-07-18 14:55:21 +08:00
    写太多 rust 导致错乱
    perfectlaugh
        52
    perfectlaugh  
       2019-07-18 14:56:39 +08:00
    justou
        53
    justou  
    OP
       2019-07-18 14:58:12 +08:00
    @Woood 学到个新词: 雨女无瓜. 今晚公司要开欢送会, 发现出场人员名单没他, 然后问了下之后怎么安排他, 听说是辞退, 原来又新招的人是替他的了_(:з」∠)_
    RorschachZZZ
        54
    RorschachZZZ  
       2019-07-18 15:01:18 +08:00
    我在上家公司交接工作,吓跑了俩新同事。。最后负责我原来工作的新同事也在交接完成后不久就走了。。。
    RockOrRoll
        55
    RockOrRoll  
       2019-07-18 15:07:37 +08:00
    教练,我想学 C++
    maguazhou
        56
    maguazhou  
       2019-07-18 15:07:39 +08:00
    选择题,蒙阿
    zjddp
        57
    zjddp  
       2019-07-18 15:08:38 +08:00
    这么好的前辈上哪找去
    justou
        58
    justou  
    OP
       2019-07-18 15:09:28 +08:00
    @bzshow1
    @legiorange 发个公司链接 http://zhiqiankeji.cn/

    不过我已经走了, 公司也没人会写 C++了, 用 C++是必须的. 进来好处是太多空闲时间, 随意充实自己, 人都很好相处, 二十几岁的小姐姐不少, 有几个还是单身; 坏处也是太多空闲时间, 没啥具体的事干, 还有个坏处是已经没人带了, 进来只能自己摸索, 也许会荒废自己.

    已经没利益相关了, 靠情怀推广一下
    sangleft
        59
    sangleft  
       2019-07-18 15:13:38 +08:00
    @perfectlaugh 触及盲点。。敲了一下 AC 是同样的错没有捕获到变量 i,B 是调用时缺少参数,D 是啥错了呢。。
    justou
        60
    justou  
    OP
       2019-07-18 15:14:32 +08:00
    记得公司好像一直想搞移动端的服务, 也需要会 java 的童鞋, C++是算法组必须的, 软件组 C#, java 应该都需要
    richzhu
        61
    richzhu  
       2019-07-18 15:15:08 +08:00
    大哥 还收小弟不? 我去... 肯定鞍前马后~
    perfectlaugh
        62
    perfectlaugh  
       2019-07-18 15:16:30 +08:00
    哎 还是得实际执行 算学习到了
    perfectlaugh
        63
    perfectlaugh  
       2019-07-18 15:16:55 +08:00
    多亏我之前用这么多 lambda 结果连名字都没得好好记
    vx2018
        64
    vx2018  
       2019-07-18 15:23:22 +08:00
    DDDCC

    for (int& i : numbers){i += 10;}

    std::for_each(numbers.begin(), numbers.end(), [](int& i) {i += 10; });

    能拿几分 hhhh
    Yiki
        65
    Yiki  
       2019-07-18 15:35:42 +08:00
    天哪没什么感觉
    就觉得楼主人真的太好了……
    jaycee110905
        66
    jaycee110905  
       2019-07-18 15:39:29 +08:00
    楼主中国好员工
    fvckDaybyte2
        67
    fvckDaybyte2  
       2019-07-18 15:40:22 +08:00 via iPhone
    会不会只是看不懂英语而已……
    skadi
        68
    skadi  
       2019-07-18 15:52:54 +08:00
    不算难,理解要到位...
    111qqz
        69
    111qqz  
       2019-07-18 15:53:07 +08:00 via Android
    楼主好人一生平安
    hx1997
        70
    hx1997  
       2019-07-18 15:53:22 +08:00 via Android
    @fvckDaybyte2 不是啦,楼主说了“英文太差, 其实一开始题都没读懂, 我一个个地解释了一遍, 还是不会做;”
    GPIO
        71
    GPIO  
       2019-07-18 15:53:42 +08:00
    2 个月时间 C 转 C++比较困难,而且还包含了 C++11/14 的内容,不过他一点都不会只能说他真的是个废柴。
    hmzt
        72
    hmzt  
       2019-07-18 15:53:58 +08:00   ❤️ 1
    个人看法,你出的题大多没有意义,语言特性只是工具,不用 c++11 和 lambda 就实现不了想要的功能吗,至于检查语法错误,ide 要比人做的更好,学习语言,靠别人教很难学到,写多了自然就会了
    ql
        73
    ql  
       2019-07-18 16:06:18 +08:00
    好人啊, 这样的大哥哥少见!
    kakudesu
        74
    kakudesu  
       2019-07-18 16:12:08 +08:00
    肯耐心教人真的不多,但是遇到不学的真的没办法
    youngster
        75
    youngster  
       2019-07-18 16:19:44 +08:00
    好人啊,要我才懒得教他
    GeruzoniAnsasu
        76
    GeruzoniAnsasu  
       2019-07-18 16:27:37 +08:00
    @hmzt 看题主描述的上下文啊,这个人是要接他的代码的,总不能我代码用到的语言特性接手的人全不懂,那咋接
    missdeer
        77
    missdeer  
       2019-07-18 16:29:14 +08:00
    虽然看着是日常能用上的,但对新人来说感觉略难,毕竟才 2 个月,又不是上学的时候还能死记硬背过考试
    deming
        78
    deming  
       2019-07-18 16:31:28 +08:00
    是女同事吗?很漂亮的那种,如果是,那么通宵达旦、手把手得教 都不够!
    YourLord
        79
    YourLord  
       2019-07-18 16:31:29 +08:00
    @RorschachZZZ 招人给我让我给分点杂货,都是最简单的,然后连续跑了 2 个说是做不了……
    fademeter
        80
    fademeter  
       2019-07-18 16:32:51 +08:00 via Android
    楼主应该是一个很有耐心的人,看这么长一段,哈哈😄
    tabris17
        81
    tabris17  
       2019-07-18 16:33:53 +08:00
    我猜第一题选 D

    pi{3.14}是什么语法?
    Cloutain
        82
    Cloutain  
       2019-07-18 16:34:54 +08:00
    哪位兄弟翻译一下,我也来做做题
    cllvking
        83
    cllvking  
       2019-07-18 16:35:40 +08:00
    楼主好人
    stone666
        84
    stone666  
       2019-07-18 16:37:28 +08:00
    楼主,想看你女装
    karllynn
        85
    karllynn  
       2019-07-18 16:38:16 +08:00
    重庆的公司。。招不到搞 IT 的太正常了
    dabaibai
        86
    dabaibai  
       2019-07-18 16:39:29 +08:00
    英文题目 略过
    way2create
        87
    way2create  
       2019-07-18 16:44:50 +08:00
    想起我框架写的多了 原生的会但用的少 一次笔试很简单的东西一时脑抽写错了 不过当时是被坑货 hr 的奇葩答卷方式搞的怪紧张的
    dabaibai
        88
    dabaibai  
       2019-07-18 16:45:23 +08:00
    @dabaibai C++11 也略过吧.虽然好玩..但是......为了好玩为啥我不用 golang
    mzdblsw8
        89
    mzdblsw8  
       2019-07-18 16:46:58 +08:00
    我感觉回到了上学的时候。人各有志。他愿意这样就随他。你自己的事情做完就走就好了。二个月要人学会也不容易啊。
    avaJ
        90
    avaJ  
       2019-07-18 16:50:22 +08:00
    好人
    salamanderMH
        91
    salamanderMH  
       2019-07-18 17:00:57 +08:00
    要去超算中心了
    lrxiao
        92
    lrxiao  
       2019-07-18 17:01:49 +08:00
    D initializer_list 不能 narrowing
    D 省个括号的语法并要 capture
    D IS-A 吧
    A 不会..
    C unique_ptr 的一个 ctor overload 就是为了模拟这里的 covariant

    for (auto& x)
    for_each(begin(), end(), [](int& a){ a+=10; })
    make_unique(T*, delete_buffer) 用 unique_ptr 的自定义 deleter

    masje
        93
    masje  
       2019-07-18 17:07:51 +08:00
    @lrxiao , 同对第 4 题有点懵逼, 难道是说只能用公共接口, 所以 C ?
    ByCen
        94
    ByCen  
       2019-07-18 17:09:27 +08:00
    好员工
    Anshi
        95
    Anshi  
       2019-07-18 17:16:23 +08:00
    天呐 最近我也在看 c++ primer 楼主好人带带我吧。。2333
    wutiantong
        96
    wutiantong  
       2019-07-18 17:20:07 +08:00
    关于第四题吧,仔细考教的话 :
    class D : B {};
    class D { B b; };
    还是不一样的,后者才是真正意义上的 Composition
    neroxps
        97
    neroxps  
       2019-07-18 17:24:56 +08:00
    https://imgur.com/Z9ZqQ5k

    楼主在说这个图片?
    shfanzie
        98
    shfanzie  
       2019-07-18 17:32:47 +08:00
    @neroxps
    @justou
    还真有《 Teach Yourself C++ in 21 Days, Second Edition 》这本书,还第 2 版了。
    http://101.lv/learn/C++/
    ahswch
        99
    ahswch  
       2019-07-18 17:35:27 +08:00
    lz 也太好了叭。我枯了。啥时候有大佬带我 2 个月 2333
    justou
        100
    justou  
    OP
       2019-07-18 17:35:45 +08:00
    @hmzt 开始也只是想随便谷歌一套题给他做做, 后来还是想根据他平时看的跟平时给他讲的来出题, 于是借了他的 c++ primer 看他的勾画以及一些当初我让他记下的笔记来出的, 我接手的公司项目全是用 C++11 以上来写的, 因为只有我一个人写, 所以再新的特性也敢用, 但这无疑增大了以后招到合适的人来接手的难度 _(:з」∠)_
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5198 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 09:28 · PVG 17:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.