你会推荐我什么项目来跟上C++; 我知道C++是一种非常复杂的语言,需要多年的实践才能掌握。p> 考虑到这一点,你知道一个小项目(大约1K的LOC)测试所有C++主要特性(继承、指针、内存管理等)。p> 我是一个java/python程序员,我真的想学习C++,所以我已经学习C++了,但没有测试过我在小练习之外学到的东西。p>

你会推荐我什么项目来跟上C++; 我知道C++是一种非常复杂的语言,需要多年的实践才能掌握。p> 考虑到这一点,你知道一个小项目(大约1K的LOC)测试所有C++主要特性(继承、指针、内存管理等)。p> 我是一个java/python程序员,我真的想学习C++,所以我已经学习C++了,但没有测试过我在小练习之外学到的东西。p>,c++,project,C++,Project,我想把所有这些知识都运用到实践中。单独做这件事你会养成许多有害的习惯。最好是在C++开发和指导下进行培训,在一个公司里有一个强< >强>的公司实习。 C++就像一枚没有安全别针的手榴弹——看起来很酷,你也听说过所有“真正的专业人士”都使用它,但你不知道它什么时候会爆炸。大量的功能可以用于善或恶,而不知道它到底是善还是恶。这就是为什么这里必须提供指导。我建议创建一个基于文本的游戏。这确实帮助我巩固了我的C++。不需要太长时间,你可以锻炼你想要的所有功能。你自己想出这个游戏。那样更有趣 另一个好主意

我想把所有这些知识都运用到实践中。

单独做这件事你会养成许多有害的习惯。最好是在C++开发和指导下进行培训,在一个公司里有一个强< >强>的公司实习。
C++就像一枚没有安全别针的手榴弹——看起来很酷,你也听说过所有“真正的专业人士”都使用它,但你不知道它什么时候会爆炸。大量的功能可以用于善或恶,而不知道它到底是善还是恶。这就是为什么这里必须提供指导。

我建议创建一个基于文本的游戏。这确实帮助我巩固了我的C++。不需要太长时间,你可以锻炼你想要的所有功能。你自己想出这个游戏。那样更有趣

另一个好主意是编写一个简单的数学库,支持向量矩阵等。
但对于今天的图书馆来说,这只是学术用途。

取决于你想在哪个领域工作。但是,在少于1000行代码的情况下,没有什么值得做的事情是正确的

如果你打算写游戏,那么试着写一个俄罗斯方块克隆

如果您认为您将使用套接字等,那么编写一个简单的聊天/irc客户端将有所帮助


你是否有需要抓挠的特定瘙痒?你最后一次想到“这糟透了,我可以做得更好”是什么时候。你能做得更好吗?

内存管理器。这会让你想到:

  • 免费商店管理
  • 指针(当然!)
  • 继承(您希望您的驱动程序代码使用此功能)
  • 模板(传递经理的另一种方式——驱动程序2)
  • 设计用户定义的数据结构(内存块)
  • 有效使用标准容器
  • 算法(移动、找出空块、碎片整理)

我不确定是否有任何东西可以测试所有主要功能。它们有很多,有些很少一起使用(我想到的是模板和虚拟函数。两者都实现了一种形式的多态性,因此您经常根据需要使用其中一种)

一个涉及所有重要特性的合适项目可能很简单,比如编写一个正确的容器类,类似于std::vector或std::list。确保异常安全性、迭代器有效性、所有操作的适当时间复杂性以及标准中规定的所有其他要求

与大多数其他项目一样,这个项目的问题在于,你不知道自己什么时候完成了。制作一个可调整大小的数组可能需要50行代码和20分钟的时间。然后初学者会认为他已经完成了。要确保异常安全,需要能够发现异常可能会将类抛出到不一致状态的所有位置

这是C++的一个普遍问题。你很容易认为你得到了它,而且编译器肯定不会通知你忘记处理的方面。因此,您可能认为您的代码是完美的,但它会在各种奇怪的特殊情况下崩溃

正如Salp齿所说的,对于一个和C++一样混乱的语言,自己编写代码是有风险的。它很容易落入“我写了一些代码,它编译了,并且似乎运行了。因此它是正确的”的陷阱。
当然,你可以在这里或其他网站上发布你的代码进行评论,或者只是通过阅读文档来补充你的代码,以获得真正的高质量C++代码。(大多数提升库倾向于有全面的文档,指定各种设计决策的原理,以及它如何安全地处理所有在C++中出现的奇怪特殊情况。当然,C++标准本身也是另一个优秀的资源。在任何一种情况下,这些都可以帮助您确定要查看哪些问题。当我学习C++时,我用它来编写我自己的语言来编写巨大的洞穴式冒险。像大多数计算机语言一样,它从来没有见过白天的光亮,但它确实教会了我很多关于C++的东西。
<> P> >选择学习C++时要避免的东西是GUI编程,这是一个陷阱,它会耗尽你所有的精力,可能会教你C++过程中的不良习惯。

< P>我会重新编写一个俄罗斯方块克隆。 你可以学习很多C++概念,学习一个像SDL这样的二维库,甚至可以学习OpenGL。 拥有一个有视觉效果的项目总是好的,在项目结束时你可以播放它。

除了选择这个,你还需要选择一个(小的)个人项目,然后在C++中做。你不需要通过阅读一个1000行项目来学习C++。 一种矩阵,其中每个位置都可以是空的或存在的。 一个人有几个属性:年龄、剩余时间、性别、邻里关系等等。能够进行一些互动:打架、做爱、生孩子、交朋友等等。一些人有特殊技能,这取决于他们的父亲(继承的行业)…比如杀戮能力、制造食物的能力等等。。。 这些互动和技能的可能结果是改变自我属性,或创造后代(如果可能),或改变邻居属性

在每次迭代中,在控制台上以符号/数字的形式打印矩阵(取决于属性等),从圣经中的迭代0开始(初始条件由您选择……您在这里是上帝)

现在你有了一些现实生活的模式