我应该编写什么代码才能深入到高级C++;? 我正在寻找项目建议,这会迫使我用先进的C++特性“弄脏我的手”。我所说的项目将充分利用该语言的功能(STL,甚至是boost(还没有太多地使用它))

我应该编写什么代码才能深入到高级C++;? 我正在寻找项目建议,这会迫使我用先进的C++特性“弄脏我的手”。我所说的项目将充分利用该语言的功能(STL,甚至是boost(还没有太多地使用它)),c++,boost,C++,Boost,为什么??因为我想学习,我想发现新的挑战。在工作中,事情开始变得无聊,真的。我习惯于不断遇到新事物、新想法和新特点。正如您可以想象的那样,这在大多数情况下不是遗留公司代码的情况。尽管如此,看看这里的一些问题和答案,这些问题和答案深入挖掘了模板、共享指针和所有这些东西,我碰巧发现自己迷失了方向,不知道答案,甚至更糟——甚至不了解发生了什么 这就是为什么我在寻找一些我可以自己编码的东西,最好只使用C++(+Boost)——命令行实用程序,不需要图形。我真的不想加入任何开源社区。我知道,查看别人的代码

为什么??因为我想学习,我想发现新的挑战。在工作中,事情开始变得无聊,真的。我习惯于不断遇到新事物、新想法和新特点。正如您可以想象的那样,这在大多数情况下不是遗留公司代码的情况。尽管如此,看看这里的一些问题和答案,这些问题和答案深入挖掘了模板、共享指针和所有这些东西,我碰巧发现自己迷失了方向,不知道答案,甚至更糟——甚至不了解发生了什么


这就是为什么我在寻找一些我可以自己编码的东西,最好只使用C++(+Boost)——命令行实用程序,不需要图形。我真的不想加入任何开源社区。我知道,查看别人的代码很有帮助。但这就是我在工作中经常做的所以。。。不用了,谢谢。项目可以是任何东西,有意义的或无意义的,有用的实用程序或只是一些虚构的没有实际用途的东西。唯一的要求是,它会迫使我真正测试我的C++技能。或至少应该是非常困难的或甚至是不可能的代码与C++的基本知识-我是那种人从来没有满意的代码,只是工作,所以我相信这将迫使我学习。但请记住,我是一个工作人员,时间有限,所以像“编写自己的操作系统代码”这样的回答真的没有多大帮助。

编写一个分叉或多线程的Web服务器。写lisp。创建一个数据库(整个实现,SQL可选)

<>我应该如何编码才能进入高级C++的深度?

  • 了解更多
  • 了解更多
  • 学习更多 不,我不是在开玩笑。一点也不。我大约15年前开始学习C++,我仍然在一个普通的基础上学习新的东西。p> 查看并做出选择。

    我将推荐Andrei Alexandrescu和C++模板的现代C++设计,由VANDUOORDE和JOSUTITY完成。仅这两项就足以让一个程序员在数月甚至数年内获得新想法。(请注意,按此顺序阅读的好处是,安德烈的书比较薄,让你想读另一本书,只是为了完全理解他写的东西。按相反顺序阅读的好处是,你不会像安德烈的书那样经常迷路。随你的便。)

    类似于矩阵数学库的东西可能与您所要查找的内容相符。算法和容器的大量潜在用途。这一切都是在你想之前就完成的,但如果你想找一些又快又脏的东西来尝试,那就是我想要的。

    选择任何高级数据结构(即树、优先级队列等)并实现它

    这样,您将学习如何:
    -以面向对象的方式进行设计
    -提供有用且一致的API
    -正确使用继承、模板和内联函数来实现您的实现目标
    -编写跨平台代码
    -编写全面的单元测试

    使用STL代码作为应如何操作的参考

    <>我应该如何编码才能进入高级C++的深度?

    C++没有任何真正的高级特性,语言做得很好,高级特性是使用了世界各地存在的许多库

    来自数学库、图形、通信、windows/x-windows/kde/gnome等

    如果你想学习一个成熟的通信库,我建议使用 这是一种有点过时的时尚,但是有一大堆语言的高级概念

    具有较高的学习曲线,但适用于世界各地的市长

    另一方面,避免使用图形工具是受虐狂,因为你会在任何GUI已经解决的事情上浪费时间


    您可以将Netbeans或Eclipse用作多平台、KDE Developer for linux(带KDE)、MS Visual Studio for Windows等。

    您提到过创建类似“无用实用程序”的东西。相反,我建议您考虑一个对您个人有用的应用程序或实用程序,或者替代您已经使用的应用程序,您可以根据自己的需求、工作流程、美学等进行设计。选择一些您希望从本项目中学习的特定内容,例如智能指针、boost、,模板元编程、正则表达式、多线程、网络。然后了解如何使用所选技术实现应用程序。只要有一些编码要做,你已经知道怎么做了,然后停下来,强迫自己在新的习惯用法中思考怎么做。例如,尝试仅使用智能指针编写应用程序

    我发现,创建一个愚蠢的小演示应用程序的危险在于你没有任何动力去完成它。最好有一个对你有用的工具的目标。这正是我目前正在做的事情:我有一个非常复杂的工作流程,用于导入照片、标记照片、重命名和编辑,因此我开始用C#和WPF编写一个应用程序来为我完成这项工作。这给了我动力去完成这个项目


    强迫自己使用不熟悉的技术解决熟悉的问题是一个很好的学习工具。

    一个相当客观的答案:我一直认为OO开发最强大的东西是多态性。在处理设计模式时,最好观察它的使用情况

    因此,我建议通过GoF获得并编写使用它的代码。申请表?可以是任意的,如前所述,因为没有任何东西强迫您使用任何东西的任何高级功能

    (需要证明吗?世界上一些最复杂的系统是用C语言编写的