C++ 如何在C++;?

C++ 如何在C++;?,c++,C++,可能重复: 基本上我来自C,嵌入式C领域。在这5年的工作之后,我想开始C++。现在,我已经开始学习C++。但课堂概念并没有在我脑海中闪现。 请告诉我,我应该如何开始上课的概念或一些简单的网站,我可以轻松地启动C++。 请C++ C++(C++),我想从C++中学习C++,Scott Meyers是一个很好的起点。“高效的C++”和“更高效的C++” 此外,我认为,考虑到你的嵌入式背景,你可能不仅需要“学习语言”,还需要努力理解面向对象编程。我认为这一领域的基本书籍之一是Grady Booch的

可能重复:


基本上我来自C,嵌入式C领域。在这5年的工作之后,我想开始C++。现在,我已经开始学习C++。但课堂概念并没有在我脑海中闪现。 请告诉我,我应该如何开始上课的概念或一些简单的网站,我可以轻松地启动C++。
请C++ C++(C++),我想从C++中学习C++,Scott Meyers是一个很好的起点。“高效的C++”和“更高效的C++”

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

,但是,因为C++背景,我建议凯尼格和Moo加速C++,因为它从一开始就显示了现代C++思想中的代码。 这将有助于你集中注意力C和C++之间的差异,并显示你将要学习的C习惯的哪些部分。

< P>“类”的概念可以很容易地被建模成一个包含数据成员的C <代码>结构> /COD>和一个包含函数指针(V-TABLE)的指针,其中所有函数都有一个“函数”。隐藏“参数
类*此

也就是说,如果您已经熟悉了结构、指针和函数指针,那么类就没有什么“错误”

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

在这一点上,你可以

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

P>最后一点,凯尼格和Moo“加速C++”的书可以是一个很好的初学者:它不考虑C,而是如何使用C++和它的库,并且在深入深入地展示这些概念来自哪里。

“基本上我是C,C域。在这个领域工作了5年之后,我想开始C++。“类的大多数有趣用法根本与虚拟函数无关,而是与访问控制(私有/公共)有关,运算符和构造函数/析构函数struct@jalf:我同意,但除非你离开地面,否则你不能飞行。OP问了一些关于类是什么的问题,你的评论是关于它的用途。我在谈论“地面”的概念和动词“离开”的含义.在OP明白这一点后,你不能开始谈论动词“fly”和“flight control system”。谈论“flight control system”对一个不知道飞机存在的人来说是无知的。我明白所有这些都是可以理解的,但出于可理解的原因投票是偏见。-所以你不会用飞机的飞行能力来描述它?我认为理解它的目的是非常必要的。我们可以把飞机作为“一种可以飞行和载客的东西”,或者说woulc将其描述为“一种超大的钛雪茄,里面有很多座位,两个扁平的金属片伸出“。如果你想了解类,你需要考虑它们的用途。类允许你定义一个新的数据类型,并允许你对该数据类型施加行为。执行此操作时,CTOR/DTOR是必不可少的。虚拟函数不是。@jalf:“你不会用飞机的飞行能力来描述飞机吗?”对于那些从来没有听到过“飞”这个词的人来说,虚拟函数是管理运行时多态性的关键,这就是OOP的定义——C++程序员被用来使用类来完成OTER事件(CtoR/Dor,封装等),但是没有多态性,就没有“真正”的OOP,只是“泛型编程”。。但OP明确提到了OOP。他提到了OOP,当然,但他询问了“类概念”。老实说,我不想看到那些不了解类是什么的人编写所谓的OOP代码。(此外,据我所知,没有封装和抽象,它不可能是“真的”面向对象,所以我要说类的这些方面非常重要)