要学习C++的功能

Law*_*and 3 c++

C++有太多的功能,我无法看到程序员在编程时如何能够记住所有这些功能.(我们可以看到它如何影响新语言的设计,例如Java)

所以,我需要的是一系列功能,这些功能足以让人们知道,忽略所有其他功能,创建c ++程序,也许是由那些和我一样思考的人创建的.

希望我足够清楚.

Mar*_*age 12

学习资源获取是初始化.

该技术由Bjarne Stroustrup发明,用于处理C++中的资源释放.

[...]

RAII在编写异常安全的C++代码时至关重要:在允许异常传播之前释放资源(为了避免资源泄漏),可以编写一次适当的析构函数,而不是在异常处理块之间分散和复制清理逻辑,这可能是也可能不是执行.

C++是一种面向对象的语言,具有继承,封装和多态等功能,也可以在Java,C#等流行语言中找到.C++还通过模板提供泛型.但是,在C++中,您必须明确地处理内存释放(即没有垃圾收集).这使得能够以受控方式释放资源和释放内存非常重要,这就是为什么我认为RAI​​I是C++中一个非常基本的概念.除非你理解RAII,否则你很难理解"智能指针".

  • @Matt怎么不是功能?语言*支持*,*启用*或*禁止*使用特定的练习.C++明确支持RAII所需的机制,而不仅仅是后门来破解这个东西,这就是为什么它是一个特性. (4认同)
  • 这不是一个功能.这是一个惯例和良好做法. (3认同)
  • 同意这个.这是使得强大的C++代码成为可能*的唯一成语.螺旋虚拟功能,OOP,模板,仿函数以及语言中的所有其他功能.这些可以在需要时临时学习.如果您不理解并使用RAII,您的代码将是一个错误,漏洞,容易出错的混乱. (3认同)

Dou*_* T. 6

这真的是一个不可能创建列表.我工作的每个地方都有一个不同的可接受的C++子集.因此,根据您正在开发的内容,它会有所不同.我已经看到C++真的只是C,偶尔使用"类关键字"来运行面向多态的代码来模板元编程重代码.然后,实践将根据您所针对的框架/库/平台而发生变化.

我能建议的最好的是阅读各种编码标准,看看他们建议你应该用C++编写代码.

  • 由于Google和Sutter在一些地方显着不同.我会选择Sutter标准,因为他几乎是C++人(C++标准委员会负责人(或者我上次检查过)). (5认同)
  • 是的我会默认使用Sutter,但您可能决定要使用wxWidgets进行编程.然后你可能只是编程喜欢他们编程. (3认同)

mpe*_*pen 6

你通过对它们的需要来学习和记忆它们.我不确定你在寻找什么样的"功能"." 虚拟功能 "肯定是你想要学习的东西,但我真的不知道你的背景.我是否应该建议多态/类继承呢?模板类/功能