搞c++ win32 上班2年.自学2年.但现在感觉自己无法再提升了.
看完c++ primer4 , win core编程4.
不会写有内存泄漏句柄泄露的代码。 熟练的stl容器操作。 不会有线程不同步的bug.
会写简单的template
会写宏来隐藏冗余的代码段现在想下一步该怎么提升c++代码。 升华 技术

解决方案 »

  1.   

    不会写有内存泄漏句柄泄露的代码。  不会有线程不同步的bug
    说明你基本功扎实,且代码架构合理。
    LZ已经是不可多得的人才,至于更近一步,则要看机遇了。
      

  2.   

    不会写有内存泄漏句柄泄露的代码。  不会有线程不同步的bug
    只能说不会轻易犯这种错误,不能说一定不会犯,因为再牛B的人也不敢保证。
    我也有同感,也是工作2年,不过没楼主厉害。
      

  3.   

    楼主是搞windows的?换个平台, 海阔天空
      

  4.   

    计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……对学习编程者的忠告:
    眼过千遍不如手过一遍!
    书看千行不如手敲一行!
    手敲千行不如单步一行!
    单步源代码千行不如单步对应汇编一行!单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
    对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
      

  5.   

    顶一个,我也是在win32平台 
      

  6.   

    熟悉熟悉业务吧,把某个业务变成代码肯定很赚钱
    ------------------------------------------------------AutoCSDN签名档------------------------------------------------------
      

  7.   


    以楼为榜样,早日成为new B的人,虽然我毕业以后可能去做java开发
      

  8.   

    我觉得有两个方向提高水平:一个是往高层,提高设计与实现的水平。这就涉及到如何运用面向对象方法去解决问题,在实践中把握一些设计原则与设计模式,把问题解决得恰如其分。这里面有许多学问。根据经验,通常有三五年以上的积累后,设计水平才提高一个档次。另一个是往底层,了解语言的底层实现,譬如:C函数支持可变参数,参数的压栈顺序是怎样的?虚函数在C++中是怎么实现的(v-table),在多重继承下又怎么支持?构造函数或析构函数中做了哪些必要的事情?有继承情况下遵循什么严格次序?C++函数返回一个对象是什么意思,如何实现的?更难的问题:异常的含义以及异常处理怎么实现?我提一些这样的问题,是我在学习C++的时候遇到的并且努力弄清楚的,有些问题我到现在还不很清楚。但我们真正追求技术的人,不会浅尝辄止,总是竭力弄清楚为什么与怎么做。
      

  9.   


    要学的东西多了。。
    1。你需要上升到理论阶段。包括编码和设计。
    2。你能自己写模板吗(不是使用stl,而是自己编写)?
    3。注意过一些软件学的问题吗?比如安全性、可移植性(跨32/64位兼容性、跨MBCS/UNCS兼容性,以及可能的跨编译器特性)、可维护性、权限、封装与隐藏(非面向对象的)、重入控制、对齐、交互对称性这些
    4。考虑过你写的接口被别人使用时,能不能保证别人容易使用,且能够一定程度的纠正别人的错误(比如胡乱地传参数调用你的函数,能保证运行时报错返回,或者编译时阻止编译通过)?
     有兴趣的可以给你出一些问题测试一下(非复杂的编程题,纯测试基础)。。
      

  10.   


    要学的东西多了。。
    1。你需要上升到理论阶段。包括编码和设计。
    2。你能自己写模板吗(不是使用stl,而是自己编写)?
    3。注意过一些软件学的问题吗?比如安全性、可移植性(跨32/64位兼容性、跨MBCS/UNCS兼容性,以及可能的跨编译器特性)、可维护性、权限、封装与隐藏(非面向对象的)、重入控制、对齐、交互对称性这些
    4。考虑过你写的接口被别人使用时,能不能保证别人容易使用,且能够一定程度的纠正别人的错误(比如胡乱地传参数调用你的函数,能保证运行时报错返回,或者编译时阻止编译通过)?
     有兴趣的可以给你出一些问题测试一下(非复杂的编程题,纯测试基础)。。你好,我对你说的题目比较感兴趣 [email protected] 求一份,谢谢。
      

  11.   

    写复杂的TEMPLE
    了解STL源码
    写多线程 多尺寸的进程池 且要求效率
    写日志操作 log4C++
    设计模式
      

  12.   

    >不会有线程不同步的bug
    应该指的是共享资源的多线程并发访问吧?想问下楼主咋做到的?CriticalSection?读写锁(话说实现比较好的读写锁--非系统自带的--推荐个)?多P多C下效率如何?
      

  13.   

    楼主是搞windows的?换个平台, 海阔天空
    大牛就是不一样啊。。
      

  14.   

    我也是搞C++的,不过没LZ牛,还是多做项目,多解决实际问题,尝试新知识
      

  15.   

    工作快一年的小菜,几乎垃圾。工作环境 编码太复杂 不同语言不同系统 我本是C++ 现在又要高flash和andriod,还兼顾php和数据库    感觉太杂了,学不了什么深的。  每当这样说 老大总说语言是想通的  咳 我也知道想通 可是我还是小菜不是大牛 并不能像他们那样那么强悍 能融汇贯通求高人指点 一二  
      

  16.   

    c++ primer5,深度检索c++物件模型,c++ template,c与指针,c++模板元编程,还有候捷的范型编程相关的一些书...期待你早日突破瓶颈,建议选把c++编程思想1,2卷的题目全部做一遍,看看所有的题能不能独立完成
      

  17.   

    我大学四年学了一个学期c++,没写过一行代码,现在在公司实习了五个月,一直在做MFC的工作,完全云里雾里,要不要放弃啊
      

  18.   

    往WINDOWS内核走,WINDOWS机制,各种驱动。。如文件过滤驱动,报文过滤驱动等。
      

  19.   

    你好,我对你说的题目比较感兴趣 [email protected] 求一份,谢谢。
    C++不完全基础测试题题目量非常庞大。此处仅摘部分
    做不出来不要灰心。也没有标准答案(但有可能(也可能无)有最佳方案),这些题对你的工作很重要,可是考虑到国内的环境,面试却不大可能会考(这对出考题的人本身也是一个挑战。hr们和菜鸟pm们不大喜欢问这种问题)。基础一)整数:
    1。一个整数的类型为INTEGERTYPE。写出判断这个整数类型是否为有符号型的表达式
    2。有一个有符号型整数类型INTEGER_T1。写出其最大值和最小值的通式
    3。有一个无符号型整数类型INTEGER_T2。写出其最大值和最小值的通式4。有两个整数a和b,都是同样的类型且无符号的整数,在一个if语句:
    if()
    的括号中完成让 输入值x 与a的和 小于b 为真的表达式5。完成下列函数:
    bool func(void * pData, size_t cb)
    {
        // TODO: 请完成此处的判断输入参数合法性的逻辑    ... // 使用pData的函数逻辑。其他开发人员已提供。请不要再修改
    }6。两组输入的指针-字节长度组pData1, cb1和pData2, cb2。给出判断这两组地址块是否重叠的表达式
      注:*这两组地址本身都不一定合法7。写一个接受两个参数:一个指针指向起始地址、一个表示数据块的长度 的函数,对这块数据填0
    上述题目做对了别得意。做错了别灰心;
    觉得容易别乱喷,发现原来没有想得那么容易别觉得没面子开骂
    做对全部、且考虑周到的。。佩服
    注:*1 除了明显只能在运行期解决的方案以外,以编译期的实现更佳。*2 不排除各种优化技巧和检查。*3 再次强调此类问题中的一些不适合做面试题用。
    *4 题目一点一点地放出来看情况如果大家普遍觉得不合适可以不做,我后面也不会继续放出来了--综合题(即可能用到其他知识):
    8。在不同的目标平台上,一个字节的位宽不一定为8位。写出判断位宽的表达式
    9。已知一个编译器的库中自定义了无符号整数类型INTEGER_TYPE(有符号的比较复杂。自己有兴趣可以试试):
     1)写一个函数,将接受一个此种类型的整数转换为36进制数输出。要求表示时对应于数字和26个英文字母,以char型字符串格式输出。
     2)提供一种方法。使得能够得到这种36进制数的字符串的最大长度(基于INTEGER_TYPE类型即可),并能满足用于直接定义这样的字符串数组(不能仅限于部分编译器,但可以不考虑旧版本)。
      

  20.   

    楼主跟我感觉差不多。。去大公司里试试吧,大公司里有很多高手。。对操作系统,代码设计,整体程序架构,等等方面都有很多成长的,也可以了解下其它平台的东东,了解下内核驱动方面的东东(这个东东主要是用来了解操作系统原理,但是别干这类工作,据我了解,逆向工程很多都是体力活,对一般人来说太枯燥了,没太多意思),读读开源代码。听朋友说,像淘宝之类的这些企业里面很多高手自己能够写ngix这类高性能服务器,mysql这类数据库。。我们离这种水平还是很远吧!?我自己现在是在往设计架构方面的路走。。
      

  21.   

    r0 sys驱动玩过一些. 写过ip filter  
    高性能服务器 socket 精通.iocp 可以同时支持8k并发
    sock其他io模型都封装过.
      

  22.   

    chromium源码熟读一遍并理解你就有提升了。
      

  23.   

    楼上各位猜测到LZ可能是因为缺少动手实操,所以兴趣有点下降。想补充下C++只是一门语言工具,但写出漂亮的代码来还是挺费心思的。甚至很多人也在语言的本身之上做过很多的研究,模式和泛型就属于这种。除非自己一步步去设计编码,否则很难体会到c++语言以及从它衍生出来的技巧(technique)的意义。共勉吧!
      

  24.   

    楼主可以考虑往驱动方向发展,看看WDDk相关的内容,至于C语言的可变参数,据我所知,printf()函数就是以压栈的方式实现的,太过于管制语法细节没多大好处啊!
      

  25.   

    “不会有线程不同步的bug”简单情况下做到这点不难,难的是复杂情况。
    能理解你说的瓶颈状态,趁年轻去拼一拼一流公司,做一些复杂的项目,比如服务端开发。你就会体会到,真正产品开发中,语言在其中的比重并不大。
      

  26.   

    《Windows Internals 6th》能搞懂多少?
      

  27.   

    看开源架构,比如ACE啥的,能把这些东西吃透,那你就是真的牛人了
      

  28.   

    虽然我不觉得死扣语言有什么用。。但是既然LZ问了,就给楼主推荐下《C++设计新思维——泛型编程与设计模式之应用》看你的自我介绍,你应该是没读过这本书的,建议你看看,不是很简单。
    另外致楼上所有认为“c++没什么东西”的,c++真的不是你所用的“面向对象的c语言”
      

  29.   

    进一步熟悉mfc,解决更多问题