c++ - 在前往 C++ 之前,我应该首先学习什么?

标签 c++ c design-patterns data-structures compiler-construction

<分区>

我正在学习 C,但在那之后或与此同时,在进入 C++ 之前我应该​​先学什么然后再学什么? Compilers, Data Structures, UML or Design Patterns?(还有什么时候开始学习Win32 API?)我一点都不着急,所以我可以从最深处开始掌握需求。只是不想因为粗心大意而迷路。

除此之外,哪些数学科目对编码的影响最大?线性代数、离散数学、微积分 ?

如果有人指导我完成这段旅程,我将不胜感激。有很多问题我想知道答案。谢谢。

最佳答案

首先,您应该了解 C++ 不是高级语言。 C 的用途不仅仅是进入 C++ 的垫脚石。使用 C 和“C 风格”C++ 是因为它们:

  • 生成较小的二进制文件
  • 使用更少的内存
  • 编译速度更快
  • 不需要操作系统支持
  • 更简单,更容易实现

到目前为止,数据结构是所列学习中最有用的,其次是算法。如果您打算学习 C++,拥有良好的设计技能也很有用(强制?)。

您根本不必学习 Win32。考虑学习 POSIX API,GTK+Boost ,因为它们更便携,并且可以在 Windows 以外的平台上工作。

您可以做出的最佳决定是 learn C thoroughly作为 Unix 平台上的一项独立技能,在因看不出 C 和 C++ 之间的区别而苦恼之前。

在列出的数学学科中,我只使用了离散数学。线性代数也很有用,但到目前为止,最好的编程学科是集合论和数论。

享受使用 C 的时间,不要依赖 Windows/Visual Studio,也不要急于使用 C++。

更新0

差点忘了!您绝对必须使用合适的 C 编译器。 C++ 在企业中广泛使用以及 C 在 Windows 开发人员中声名狼藉的主要原因是 Visual Studio。 Visual Studio 无疑是最好的 C++ IDE,但它也是我所知道的最差的 C 编译器。请务必使用支持 C99 的 C 编译器,例如 GCC , mingwClang .我对 C 的第一次体验是使用 LCC ,它在 Windows 上非常容易使用,但是自从我转向 Linux 之后我就没有使用过它,所以我不能评论它的 C99 状态。

关于c++ - 在前往 C++ 之前,我应该首先学习什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4352425/

相关文章:

c++ - C++ Program Exe启动时创建错误

c++ - boost::asio::deadline_timer::async_wait 内部出现段错误

c# - 从未通过 C# 注册的 C++ COM 服务器访问 COM 接口(interface)

c# - 套接字服务器应用程序的选择 : C/C++ or C#

c - 访问冲突读取位置 0xfdfdfdfd。 IN C

c++ - 尝试实现工厂模式时如何修复 'Segmentation fault (core dumped)'

javascript - kha 原生目标上没有真正的 'fullscreen' 选项?

c - 何时为 OpenMP 使用私有(private)和共享变量

c# - 在解决方案的类库项目中获取连接字符串

java - 将字段从一个对象映射到另一个对象的设计模式