读书人

感觉自个儿c++瓶颈了

发布时间: 2013-07-29 10:30:31 作者: rapoo

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

现在想下一步该怎么提升c++代码。 升华 技术
[解决办法]
不会写有内存泄漏句柄泄露的代码。 不会有线程不同步的bug
说明你基本功扎实,且代码架构合理。
LZ已经是不可多得的人才,至于更近一步,则要看机遇了。
[解决办法]
不会写有内存泄漏句柄泄露的代码。 不会有线程不同步的bug
只能说不会轻易犯这种错误,不能说一定不会犯,因为再牛B的人也不敢保证。
我也有同感,也是工作2年,不过没楼主厉害。
[解决办法]
楼主可以看看张银奎老师的《软件调试》,这本书难度较大,我看了200多页就没有勇气继续往下看了。如果楼主能坚持看透这本书,必有达成。
[解决办法]

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

现在想下一步该怎么提升c++代码。 升华 技术



楼主是搞windows的?

换个平台, 海阔天空

[解决办法]
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。

VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。

[解决办法]
顶,楼主高人。
[解决办法]
两年有这么高的水平,不错啊
[解决办法]
引用:
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。



VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。

赵老师 怎么老是这个

怪不得被称作老师
[解决办法]
想知道楼主主要做什么工作
[解决办法]
解决实际问题,实际问题浩如烟海,C++只是一种解决问题的工具。
只有解决千奇百怪的实际编程问题,C++水平才可能得到提高,否则只是纸上谈兵。
LZ的瓶颈就是各种项目的历练,建议LZ可考虑通过跳槽、出国等途径参与大型项目开发,
到大公司锻炼。莫做井底之蛙。
[解决办法]

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


[解决办法]
感觉自个儿c++瓶颈了膜拜楼主。
[解决办法]
c++只是一个程序开发的语言,你可以向底层,比如:汇编,内核驱动,也可以研究算法
[解决办法]
比较容易进阶的算是设计模式吧。看设计模式C++版。
[解决办法]

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

现在想下一步该怎么提升c++代码。 升华 技术


要学的东西多了。。
1。你需要上升到理论阶段。包括编码和设计。
2。你能自己写模板吗(不是使用stl,而是自己编写)?
3。注意过一些软件学的问题吗?比如安全性、可移植性(跨32/64位兼容性、跨MBCS/UNCS兼容性,以及可能的跨编译器特性)、可维护性、权限、封装与隐藏(非面向对象的)、重入控制、对齐、交互对称性。。。这些
4。考虑过你写的接口被别人使用时,能不能保证别人容易使用,且能够一定程度的纠正别人的错误(比如胡乱地传参数调用你的函数,能保证运行时报错返回,或者编译时阻止编译通过)?
有兴趣的可以给你出一些问题测试一下(非复杂的编程题,纯测试基础)。。
[解决办法]
比较容易进阶的算是设计模式吧。看设计模式C++版。
[解决办法]
引用:
解决实际问题,实际问题浩如烟海,C++只是一种解决问题的工具。
只有解决千奇百怪的实际编程问题,C++水平才可能得到提高,否则只是纸上谈兵。
LZ的瓶颈就是各种项目的历练,建议LZ可考虑通过跳槽、出国等途径参与大型项目开发,
到大公司锻炼。莫做井底之蛙。

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

20楼的哥们说的很对,我个人感觉还是往高层发展,提高自己的设计能力和实现能力,因为社会是现实的,真的不需要知道那么的原理,你能设计出来东西,公司才愿意给你薪水,而不是听你丫讲一堆实现原理什么的,你解释清楚虚函数在C++中怎么实现的老板会听吗?不会!
你能解释清楚C函数是如何支持可变参数的,参数的压栈顺序是怎么样的,有多大意义?老板考虑的是你能不能给他带来利益,一般不是很关心技术细节,我们是社会人,应该把更多的时间和精力来学习实用的东西。。。。
[解决办法]
引用:
Quote: 引用:

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

现在想下一步该怎么提升c++代码。 升华 技术


要学的东西多了。。
1。你需要上升到理论阶段。包括编码和设计。
2。你能自己写模板吗(不是使用stl,而是自己编写)?
3。注意过一些软件学的问题吗?比如安全性、可移植性(跨32/64位兼容性、跨MBCS/UNCS兼容性,以及可能的跨编译器特性)、可维护性、权限、封装与隐藏(非面向对象的)、重入控制、对齐、交互对称性。。。这些


4。考虑过你写的接口被别人使用时,能不能保证别人容易使用,且能够一定程度的纠正别人的错误(比如胡乱地传参数调用你的函数,能保证运行时报错返回,或者编译时阻止编译通过)?
有兴趣的可以给你出一些问题测试一下(非复杂的编程题,纯测试基础)。。



你好,我对你说的题目比较感兴趣 595207641@qq.com 求一份,谢谢。
[解决办法]
可以做C++分析和设计麻?那个对专业水平要求很高的,怎么不行了吗?
[解决办法]
玩win32,看看windows核心编程
[解决办法]
写复杂的TEMPLE
了解STL源码
写多线程 多尺寸的进程池 且要求效率
写日志操作 log4C++
设计模式
[解决办法]
感觉好牛逼的说~~
[解决办法]
《C++设计新思维——泛型编程与设计模式之应用》
[解决办法]
引用:
我觉得有两个方向提高水平:一个是往高层,提高设计与实现的水平。这就涉及到如何运用面向对象方法去解决问题,在实践中把握一些设计原则与设计模式,把问题解决得恰如其分。这里面有许多学问。根据经验,通常有三五年以上的积累后,设计水平才提高一个档次。另一个是往底层,了解语言的底层实现,譬如:C函数支持可变参数,参数的压栈顺序是怎样的?虚函数在C++中是怎么实现的(v-table),在多重继承下又怎么支持?构造函数或析构函数中做了哪些必要的事情?有继承情况下遵循什么严格次序?C++函数返回一个对象是什么意思,如何实现的?更难的问题:异常的含义以及异常处理怎么实现?我提一些这样的问题,是我在学习C++的时候遇到的并且努力弄清楚的,有些问题我到现在还不很清楚。但我们真正追求技术的人,不会浅尝辄止,总是竭力弄清楚为什么与怎么做。


下半部门的貌似都是 深入探索c++内存模型 里面的内容,
[解决办法]
>不会有线程不同步的bug
应该指的是共享资源的多线程并发访问吧?想问下楼主咋做到的?CriticalSection?读写锁(话说实现比较好的读写锁--非系统自带的--推荐个)?多P多C下效率如何?
[解决办法]
引用:
Quote: 引用:

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

20楼的哥们说的很对,我个人感觉还是往高层发展,提高自己的设计能力和实现能力,因为社会是现实的,真的不需要知道那么的原理,你能设计出来东西,公司才愿意给你薪水,而不是听你丫讲一堆实现原理什么的,你解释清楚虚函数在C++中怎么实现的老板会听吗?不会!
你能解释清楚C函数是如何支持可变参数的,参数的压栈顺序是怎么样的,有多大意义?老板考虑的是你能不能给他带来利益,一般不是很关心技术细节,我们是社会人,应该把更多的时间和精力来学习实用的东西。。。。


狭隘。往底层走,并不是要你能说出个虚函数的原理去到处讲。比如一些逆向方面的东西和底层是紧密相关的。
[解决办法]
对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!
[解决办法]
引用:
>不会有线程不同步的bug
应该指的是共享资源的多线程并发访问吧?想问下楼主咋做到的?CriticalSection?读写锁(话说实现比较好的读写锁--非系统自带的--推荐个)?多P多C下效率如何?


这个问题问得很好呀,

[解决办法]
有了扎实的基础之后,就能面对各种项目,遇到各种需求。在设计、开发、调试过程中,你可以不断深化某一领域的专业知识。

读书人网 >VC/MFC

热点推荐