【发布时间】:2009-06-14 01:23:35
【问题描述】:
我学c++大约三年了,还没有在实际项目中使用过c++。我只是用它写了一些小程序和例子,我看了很多关于c++和算法的书,《c++入门》、《有效c++》、《异常c++》、《c++常识》、《算法入门》……,所以我想在一个开源项目中使用它来提高我的 c++ 能力并在书籍上实施知识库。
【问题讨论】:
标签: c++ open-source
我学c++大约三年了,还没有在实际项目中使用过c++。我只是用它写了一些小程序和例子,我看了很多关于c++和算法的书,《c++入门》、《有效c++》、《异常c++》、《c++常识》、《算法入门》……,所以我想在一个开源项目中使用它来提高我的 c++ 能力并在书籍上实施知识库。
【问题讨论】:
标签: c++ open-source
有很多。我的建议是选择一个您也将成为用户的项目。这样您就可以更好地了解结果。
【讨论】:
您在上面的其中一个 cmets 中提到您对与数据库相关的编程感兴趣,您可能想查看poco 项目,这是一个相当高级的库集合:
用于以网络为中心的应用程序的下一代 C++ 类库。
POCO C++ 库(POCO 代表 POrtable 组件)是开源 C++ 类库,可简化和加速 C++ 中以网络为中心的可移植应用程序的开发。这些库与 C++ 标准库完美集成,并填补了它留下的许多功能空白。它们的模块化和高效的设计和实现使 POCO C++ 库非常适合嵌入式开发,这是 C++ 编程语言变得越来越流行的领域,因为它适用于低级(设备 I/O、中断处理程序等) .) 和高级面向对象的开发。当然,POCO C++ 库也已准备好应对企业级挑战。
特点
- 多线程编程的线程、线程同步和高级抽象
- 流和文件系统访问
- 共享库和类加载
- 强大的日志记录和错误报告
- 安全和加密
- 网络编程(TCP/IP 套接字、HTTP 客户端和 HTTP 服务器、FTP、SMTP、POP3 等)
- XML 解析(SAX2 和 DOM)和生成
- 配置文件和选项处理
- SQL 数据库访问(ODBC、MySQL、SQLite)
【讨论】:
天哪,任君挑选!
有关 GUI 练习,请查看 wxWidgets。
对于 IDE,CodeBlocks
SourceForge 上可能有很多人需要他们的项目帮助。
我相信OpenOffice 会进行一些 C++ 编码。
我敢肯定,你无法动摇。
编辑: 此外,最好参与您正在研究编码的项目社区。开始在他们的论坛、邮件列表和聊天室中闲逛。找出他们有编码需求的地方,并愿意深入了解您感兴趣的需求。
找出项目的编码标准并坚持下去,以便其他项目成员的可维护性和可读性。这将赢得一些尊重;-)
【讨论】:
我建议选择一个既符合您对 C++ 的兴趣又符合您喜欢的其他一些领域的项目。例如,我目前正在研究 IPCop,因为我希望了解更多关于该语言的知识并且我对网络安全感兴趣。
由于有这么多项目可供选择,我相信您将能够找到一个比仅根据语言选择更适合您兴趣的项目。
【讨论】:
这一切都取决于。您必须知道,选择您将要破解的第一个开放项目是多么重要。一个错误的项目会导致你养成坏习惯。不幸的是:有很多 C++ 程序员和他们的项目可以感染你。 我建议你去一些开源项目托管网站,例如 Sourceforge、Freshmeat 或 ibiblio,并搜索一些应该有的项目:
根据具体建议,你可以试试Astyle
【讨论】:
我没有具体的建议。其他人说有许多有价值的原因。我会扮演魔鬼的拥护者,并建议你不要追求任何主流,只是因为尽管你已经使用了三年的 c++,这将是你的第一个合适的项目,而你会犯错误!
也就是说,从您选择的书籍看来,您的起步非常好,而且您可能具备成为一名体面的 C++ 开发人员的素质 - 祝您好运!
【讨论】:
听起来您对算法很感兴趣。也许是开源 3d 渲染或建模项目之一?
K-3d 是用 C++ 编写的,带有 Boost 模板库 我认为有几个用 C++ 编写的渲染器。
选择一个项目的关键是找到你会喜欢的工作。
【讨论】:
我想说,试试 Qt GUI toolkit,它现在有一个很棒的 IDE。
【讨论】: