如何在C ++中启动面向对象的编程?

时间:2012-02-10 08:48:21

标签: c++

  

可能重复:
  The Definitive C++ Book Guide and List

基本上我来自C,嵌入式C领域。在这个领域工作了5年之后,我想开始使用C ++。现在,我已经开始学习C ++了。但是Class概念并没有点击我的脑袋。 请建议我如何启动Class概念或一些简单的网站,我可以轻松地启动C ++。 请告诉我一些很好的C ++问题(网站,我可以找到一些C ++练习)。

4 个答案:

答案 0 :(得分:5)

看看Definitive C++ Book Guide。由于你有C背景我会推荐Koenig和Moo的“Accelerated C ++”,因为它从一开始就用Modern C ++的理念显示代码。 这可能会帮助您专注于C和C ++之间的差异,并向您展示您将不得不忘记的C习惯的哪些部分。

答案 1 :(得分:2)

如果你想学习C ++,Stroustrups“The C ++ language”是一个非常好的起点imo。我个人也从Scott Meyers的“Effective C ++”和“More Effective C ++”中学到了很多东西

此外,我认为,考虑到您的嵌入式背景,您可能不仅需要“学习语言”,还需要了解面向对象编程。我认为这个领域的基本书之一是Grady Booch的“面向对象的分析和设计”和“四人帮”:Gamma / Helm / Johnson / Vlissides“设计模式”(虽然这两本书都是用Java编写的)

答案 2 :(得分:1)

C ++最初来自c,本书可以帮助您理解c ++:“C ++对象模型内部”

答案 3 :(得分:0)

“类”的概念可以很容易地建模到包含数据成员的C struct和指向包含函数指针(v-table)的结构的指针,其中所有函数都有一个“隐藏”参数Class* this

那就是说,如果你已经熟悉了struct,pointer和function指针,那么类就没那么“神秘”了。

其他一切都是“使用艺术”,并且本身并不与类概念本身相关,而是与如何安排它们以获得有效的可维护代码。

此时你可以

  • 尝试自己编写一个设计方式的C程序(注意复杂,只是为了得到线索)或
  • 忘记C本身,并尝试理解应该如何使用这个概念(而不是技术上的概念)。

最后一点 Koenig和Moo “Accelerated C ++”一书是一个很好的入门者:它不考虑C,但是如何使用C ++及其库,以及 - 更深入更深入的细节 - 显示这些概念的来源。