我今天参观了大学CS系开放日,在实验室参观中,我们坐下来参加了本科生的几个最后一年的项目.一个特别好 - 一种FPS小行星游戏.我决定在src目录中查看它是用C++完成的(大多数其他项目都是Java 3D应用程序).
我以前没有做过任何C,但之前我已经查看了一些C代码.从我在这个游戏中的.cpp代码中看到的,它看起来并没有什么不同.
我有兴趣学习C或C++,但稍后可能会学习其他的.对我来说,先学习一个是否有任何优势,如果有,哪一个?
Bri*_*ndy 115
在学习C++之前不需要学习C语言.
他们是不同的语言.一种常见的误解是C++在某种程度上依赖于C而不是完全指定的语言本身.
仅仅因为C++共享许多相同的语法和许多相同的语义,并不意味着你需要先学习C语言.
如果你学习C++,你最终将学习大部分C语言,并且随着时间的推移会学习一些语言之间的差异.实际上编写适当的C++是一件非常困难的事情,因为中级C++程序员倾向于编写C/C++.无论你是从C开始还是从C++开始,都是如此.
如果你先了解C,那么学习C++是个好消息.您将从了解一大块语言开始.如果你不了解C,那么就没有必要专注于不同的语言.有很多好的书籍和教程可以让你从不知道什么开始,并且将涵盖你从C中学到的任何适用于C++的东西.
cdo*_*ner 72
我喜欢这个问题 - 就像问"我应该先学习什么,滑雪板还是滑雪"?我认为这取决于你是想滑雪还是滑雪.如果你想同时做到这两点,你必须学习两者.
在这两项运动中,你都会使用足够相似的设备在雪地上滑下山丘来引发这个问题.然而,它们也是完全不同的,因此学习它对另一方没有多大帮助.与C和C++相同.虽然它们在语法上似乎是语言非常相似,但是编写OO代码与程序代码所需的思维模式是完全不同的,因此您几乎必须从头开始,无论您学习第二语言.
Dim*_*ima 64
我首先学习了C,在学习C++之前,我学习了使用C的数据结构课程.这对我来说效果很好.C语言中的数据结构课程让我对指针和内存管理有了深刻的理解.一旦我了解了它的内容,它也明显体现了面向对象范式的好处.
另一方面,通过首先学习C,我已经养成了一些习惯,这些习惯最初导致我编写错误的C++代码,例如过度使用指针(当C++引用时会这样做)和预处理器.
C++实际上是一种非常复杂的语言,具有许多功能.但它并不是C的超集.相反,有一个C++的子集由基本的过程编程构造(循环,ifs和函数)组成,它与C非常相似.在你的情况下,我会从那开始,然后继续前进到更高级的概念喜欢类和模板.
最重要的是,恕我直言,在你的大脑冻结成一种看待世界的方式之前,应该接触到不同的编程范式,比如程序,面向对象,功能和逻辑.顺便说一下,我还强烈建议你学习一种函数式编程语言,比如Scheme.这真的会扩大你的视野.
Hea*_*eek 13
如果您决定同时学习(并且正如其他人所提到的那样,没有明确的需要同时学习),请首先学习C. 从C到C++的感觉就像是一种自然的进步; 走另一条路感觉就像故意将一只手绑在背后.:-)
old*_*mer 12
C是软件工程必备的必备语言.C++,Java,python,不是.你应该毫无疑问地先学习它.
Ada*_*wes 12
我认为你应该首先学习C,因为我先学了C.C让我很好地掌握了语法并掌握了类似指针的东西,所有这些都流入了C++.
我认为C++可以很容易地包含所有那些陷阱(当你使用[]运算符和一个狡猾的索引时需要一个不会溢出的数组?当然,创建一个边界检查的数组类)但是你需要知道什么在你明白为什么事情以某种方式完成之前,他们会被他们咬伤.
说完所有内容后,通常会教C++的方式是"C++是带有对象的C,这里是C的东西,这里是所有这些OO的工作原理",所以你很可能在任何真正的C++之前学习基本的C无论如何,请关注大多数文
Ste*_*owe 12
我不同意这里的大多数人.我认为你应该在学习C++之前学习C语言.这绝对没有必要,但我认为它使学习C++变得更容易.C是C++的核心.您了解C的任何内容都适用于C++,但C更小,更容易学习.
拿起K&R并仔细阅读.它很短,会给你足够的语言感.一旦掌握了指针和函数调用的基础知识,就可以更轻松地继续使用C++.
没有.
学习C++通常更有用,因为它更接近最现代的基于OO的语言,如Eiffel或C#.
如果您的目标是学习C++,那么首先要学习现代的标准C++.把mallocs放在一边.
但Steve Rowe 有一点 ......
学习C会强迫您在编写代码时更加思考一些问题,例如显式和隐式内存管理或基本数据类型的存储大小.
一旦你达到了对C的功能和错误特征感到满意的程度,你在学习和编写C++时可能会遇到麻烦.
您看到的C++代码完全有可能与标准C看起来没什么不同,但这可能是因为它不是面向对象的,并且没有使用异常,面向对象,模板或其他高级功能.
就像生活中许多其他问题的答案一样,这取决于.这取决于您的编程兴趣和目标.如果你想用桌面应用程序编程,也许用GUI,那么C++(和OOP)可能是一种更好的方法.如果你对x86芯片组以外的硬件编程感兴趣,那么C通常是更好的选择,通常是因为它的速度.如果你想创建一个新的媒体播放器或编写一个商业应用程序,我会选择C++.如果你想对星系碰撞或流体动力学进行科学模拟,看看C的力量.
我认为首先学习C是个好主意.
comp sci课程仍然使用C的原因.
在我看来,它要避免主题的所有"拥挤",要求OOP承担.
我认为程序编程是首先学习编程的最自然的方式.我认为这是真的,因为在一天结束时你拥有它:一行接一行地执行代码.
今天的许多文章正在推动"对象优先"的方法,并在引入阵列之前开始讨论汽车和换档.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           144449 次  |  
        
|   最近记录:  |