用于小型个人项目的C ++(即爱好编程)

时间:2010-06-02 22:07:55

标签: c++

我最近开始使用C ++。我现在正在使用PHP,并决定看看C ++。网络编程让我使用几种语言,有几个人。我想做编程,我只需要用一种语言打扰并创建小实用程序应用程序(大多数不是基于Web的)。我想要一种编译的强类型语言,而不需要记住类的大部分内容。基本上我想学习以下内容的C ++:

  1. 移动编程(我不想接触Java,我没有用于Objective C或IPhone SDK的Mac)
  2. DTR,POS等小型桌面应用
  3. 创建基于桌面的小型游戏
  4. 创建可以访问网络以获取更多内容的类似Air的应用程序
  5. 我听说C ++不是初学者友好的,主要用于大量项目,包括大量计算和精细细节(如3D游戏)。在上述情况下使用C ++是否可行或甚至可能? (对不起,我还没有深入研究过C ++,所以除了“巨大的单片项目”之外,我还不知道其他任何用途)

6 个答案:

答案 0 :(得分:2)

你肯定可以在你提到的所有领域使用C ++,不过它是否适合任何一个领域都可以讨论。 C ++是一种非常庞大而复杂的语言,需要花费大量精力才能加快速度。如果我是你,我会选择你提到的最感兴趣的领域之一,然后找出最适合该领域的语言并了解它。

如果您已经开始学习C ++,那么您至少需要阅读一本书 - 您无法仅从互联网资源中学到它。有关图书清单,请参阅此问题The Definitive C++ Book Guide and List

答案 1 :(得分:1)

构成真正问题的四个用例中唯一一个是移动设备。您必须找到允许使用C ++的移动平台。我使用的最后一个这样的平台是最初的Palm OS。我想WinCE是另一个,但是我听说在Phone 7中他们正在转向Silverlight用于“原生”应用程序。您显然已经意识到使用C ++的要求也排除了Android和iPhone。移动平台上管理语言的这种趋势似乎很难停止。

至于“不是初学者友好”,在比较意义上可能是真的,但由于你已经是程序员,你不再是初学者了。 :) C ++不是“第一编程语言”的最佳选择,但对于第二或第三种语言来说它没什么问题。

答案 2 :(得分:0)

对于2,3和4,我推荐使用C#而不是C ++,原因是我写了here

大约1,你可以iPhone development with .NET但我从未尝试过,我不知道它有多可行。

修改
回答你的实际问题:是的,用C ++编写小型和大型桌面应用程序是完全可行的。特别是如果你使用像Visual Studio和Qt这样的高质量工具。只是因为我认为它会无缘无故地浪费你的大部分时间,除非你打算最终进入职业游戏开发。

答案 3 :(得分:0)

在机器人上你可以使用除Java以外的其他语言 - 查看它们的ASE(活动脚本环境)。 C ++ / C应该只在没有其他选择时使用 - 即速度关键代码,操作系统等。很容易犯一个难以诊断的错误,并且有很多任务需要花费更长时间才能完成应该写和赔率是其他人已经这样做并做得更好 - 重新发明轮子是坏的。如果你感兴趣的话尽可能地学习,最终你可以掌握它。这是一项非常出色的技能。

它也不是一个完全面向对象的语言,但它是一个支持大多数面向对象特性的混合语言,但是一些例如继承和多态在C ++中处理起来有点尴尬 - 例如你必须将方法定义为虚拟在基类中,为了允许在子类中重新定义它们 - 有点像预测未来 - 这个方法是否都希望由继承者重新定义?在这种情况下真正发生的事情是你稍后使基类方法虚拟化以使其可以重新定义 - 也就是说,如果你碰巧有权访问源代码那么做 - 如果不是那么哦。有关C ++和其他陷阱中令人困惑的内容的示例:Pitfalls

查看其他语言,例如Ruby或Python - 特别是Stackless Python,其中使用它和C ++(必要时使用)的组合来创建EVE Online以及Erlang和Haskell等函数语言。 / p>

答案 4 :(得分:0)

我像你一样从PHP转到C ++,但我对3D游戏等更感兴趣。现在我已经转向C#并发现它比C ++更有乐趣。

至于您感兴趣的特定领域,C ++当然是一种选择,但C#可能更好。

使用C ++

移动编程可能不是一个好主意。我知道有可能使用NDK等,但对于初学者来说,它可能不太好。对于iPhone开发,除官方SDK之外,下一个最佳选择是来自Novell的(商业)MonoTouch框架。但是,您可能仍需要部署mac(我不知道)。就Android而言,如果您不想触摸Java(不要责怪您),我相信C#框架(类似于MonoTouch)正在开发中,其他语言可能也可用。其他平台?不知道。

使用C ++,

小型桌面应用程序也非常有用。假设您正在运行Windows,则可以使用Win32 API(pain)或C ++ / CLI API(更好)。您还可以使用其他GUI框架,如Qt,wxWidgets或GTK +,这些框架在其他平台上也都受支持。再次回到C#,在MonoDevelop中使用GTK#进行GUI开发非常有趣。在我的Windows时代,在Visual C#Express中使用了WinForms,我可以说我现在喜欢这个过程,而我之前没有。

游戏是我感兴趣的主要领域,也是我最初选择C ++的原因。看来你已经说过基于桌面的小型和基于性能的原因使用C ++是一种矫枉过正的IMO。您可以使用pygame在Python中制作一个体面,有趣,可玩的游戏,而不必使用像C ++这样的语言。在C#中(是的,我正试图将它卖给你)你可以使用微软的XNA framework或其他类似的框架(我个人最喜欢的)OpenTK创建精彩的游戏。

丰富的互联网应用。 C ++可能不是在这里使用的正确工具。这肯定是可能的,但看到C ++没有标准的网络库,你必须自己想出一些这样的东西。 C#可能不是正确的工具,但它使它更容易一些。还有其他选项(比如Python),但这不是我所知道的。

尽管我已经说过,但我仍然认为C ++是一门很好的语言。它教你如何在PHP领域从未想过的低级别的东西。如果你想学习它,真正帮助我的书是Herbert Schildt的“C++: A beginners guide”和Bjarne Stroustrup的“Programming”。

答案 5 :(得分:0)

是的,您的使用案例都可以使用C ++,更多或 less (移动设备上的YMMV)完成。

然而,在某种程度上,像C#这样的语言会更快发展。

我的意见中,一旦你摆脱了直接的表单设计功能,并在语言和语言中破解了一段时间应用程序,语言特征比较开始在意义上减少。

我推荐C ++作为第一个“重量级”语言;有关我最近的讨论,请参阅here