学习C#以过渡到C/C++;?

学习C#以过渡到C/C++;?,c#,java,c++,programming-languages,C#,Java,C++,Programming Languages,好的,我刚上了计算机科学的入门课,学校的语言选择是Java(我有多态性、封装等概念的基础知识)。我想学习C++ + C(我听说应该先学习C++然后再去C),并且想知道C是一个很好的过渡语言,因为java和C语言之间有语言上的相似性。学习C语言首先会帮助我更好地理解C++吗?p> 谢谢你的帮助。谢谢。 < P>如果你已经知道了java,C++就不会教你更多的C++了。C#与Java相比,并不明显更像C++。它确实支持了不安全< /COD>代码中的指针,但除此之外,我想不出有什么原因,它会成为一个从

好的,我刚上了计算机科学的入门课,学校的语言选择是Java(我有多态性、封装等概念的基础知识)。我想学习C++ + C(我听说应该先学习C++然后再去C),并且想知道C是一个很好的过渡语言,因为java和C语言之间有语言上的相似性。学习C语言首先会帮助我更好地理解C++吗?p>
谢谢你的帮助。谢谢。

< P>如果你已经知道了java,C++就不会教你更多的C++了。C#与Java相比,并不明显更像C++。它确实支持了<代码>不安全< /COD>代码中的指针,但除此之外,我想不出有什么原因,它会成为一个从爪哇到C++的特别好的桥梁。另外,我怀疑来自另一个方向的开发人员更可能使用这一特性。如果你有其他学习C++的理由,我说要去做,但是为了更容易地转换C++,我会说跳过它。

< P>我觉得从java到C和C++最容易的转换是从C.

开始。 感受指针而不是托管内存

然后,一旦你对C和C++中的硬东西有了感觉,用C++来处理对象和STL,


这就是我学习的方式,对我来说,这是一个非常容易的过渡。

学习总是按照事物被发明的顺序进行,而不是相反


编辑:先学习C++然后C是非常疯狂的建议…我的意思是C++是C的超集,一旦你学会了C++,除了C语言之外,C++中没有什么可以学习的。更容易理解为什么事物被添加为语言的进化而不是猜测为什么C++中没有实现C++特征是.java?是面向对象的,C++可以是面向对象的,C是主要面向对象的,但这是主要的相似性。 C#与Java相比有了很大的变化,所以除非你看C#for.NET1.1,否则你将学习一种与Java非常不同的语言,如果你的目标是C,那么你将远离它

C是一种结构化语言,因此思维方式与其他三种不同,因为你不再有对象,你必须自己担心内存收集,而不是垃圾收集

指针是C语言中最难学的部分,一旦我明白C语言很容易


<>你一旦知道C,如果你已经知道java,那么C++就有更少的学习空间了。

学习C首先要有处理非托管内存的感觉。然后将你所学到的面向对象的概念应用到C++的非托管世界。将自己引入到C++的不同之处,如虚拟方法、多重继承等。p>
阅读有关最佳实践的书籍。仅仅学习C++就不会让你成为一个C++开发者。这是一个语言联盟,你最好知道如何使用这种语言。

只要学习C语言就行了。不要费心于“转换”;如果你的目标是学习C,直接跳到它。java与C共享足够的语法,以使你不必担心C++;你会被C++的东西弄得一团糟。C是很重要的,可以自己学习,而不是试图“减轻打击”。

< P>如果你主要对学习感兴趣,C++就不学C,因为表面上看起来很相似,实际上,它们是完全不同的。p> 我强烈建议学习不使用托管内存系统的编程语言。原因是当你使用这种语言时,你不得不自己学习复杂的内存管理。你不能依赖垃圾收集器来完成任何事情,因为对象/结构的生存或消亡取决于你

C是一种非常小的语言,可能比C++更快学习,但是如果你最终想使用和学习现代面向对象语言,你可能会从C中学习坏习惯。首先学习C不是一项要求


我的最终建议是直接进入C++并得到它的感觉。

>我不认为有任何语言能顺利过渡到C++,除了D.<

概念几乎完全是C++和d:

  • RAII->确定性资源管理,很难用错,用对也很琐碎。在C#或C中,你不会学到这一点,你只会在那里学到手动资源管理
  • 模板元编程->编译时的图灵完整性。虽然大多数程序员不需要这样做,但这种情况并不常见;通常,您可以在库的形式中找到它(最突出的示例:表达式模板)
  • < >强>编译时,鸭型泛型编程 + C++附带多种类型的不可知算法和容器。C#泛型是严格类型的,对客户机有更多的限制
  • 不同的范例:过程式、面向对象、通用和一些函数式编程。C#、Java和C只教授其中的一个子集。在C++中,你有机会学习什么时候最合适。
  • 常量正确性和常量正确的库

我不喜欢很多程序员把C++或C和C的比较,“你也可以在C中有指针”,因为这确实不重视真正的差异。< /P>我刚从亚马逊订购了两本书(买1个1个半点),第一个是SAMS自学C++和C++底漆加第五版。谢谢你提供的信息。托马斯,如果你打算同时学习楔形文字和它的继承者,那是的,该死的。谢谢你的减号,smart pants:)@Thomas:这意味着在你最终/确实/想要学习的语言中,你应该按时间顺序学习。C更接近实际情况,而不是深入机器。理解这一点,它将帮助你