本篇内容介绍了“C跟C++有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
C ++是带有类的C。
早在C流行并且没有C ++的时候,Bjarne Stroustrup就选择了C,并使用来自Simula67语言的类对其进行了扩充,并创建了C ++。这些类为面向对象范例打开了一个全新的世界。
最初,没有专用的C ++编译器。当您编写C ++时,编译器将其转换为C(人类很难理解的C,但是C仍然可以),然后编译C。但是,C ++编译器确实出现了,新功能也出现了。
C和C ++之间的一些区别是:
在C语言中,对于输入或输出,我们使用诸如gets(),puts(),scanf(),printf()等函数。这些函数期望值具有特定的数据类型,或者对于scanf()或printf(),我们必须指定我们要函数处理的数据类型。在C ++中,我们有时可以使用这些功能。但是,人们通常更喜欢使用cin和cout对象。请注意,这些是类的对象,当我们执行I / O时,它们本身将确定变量的数据类型。
C不支持函数重载。您不能具有相同名称的多个功能。因此,假设您有一个计算整数的平方的函数和计算浮点数的平方的函数,则必须给它们分别命名。在C ++中,给它们起相同的名称,然后语言将根据传递给该函数的参数类型来确定使用哪个函数。
C不支持异常处理。您应该避免由于意外事件转折而导致运行时错误的情况。在C ++中,您可以引发异常并相应地处理它们。在进行大型项目时,这非常有用。
除了函数重载之外,C ++还支持C中不存在的运算符重载。是否曾经想过用+运算符连接两个字符串?好吧,尽管C运气不好,但是使用C ++可以做到。当然,类使这一切成为可能,并且您必须使用std :: string而不是常规字符串,但是,为了保持理智,std :: string要好得多。
上一点将我们引到了std :: string。这是一个用于字符串的(惊奇类)类。比C风格的字符串更易于使用和阅读。
对于动态内存分配,C使用malloc()和free(),但是C ++具有更好的new和delete运算符。
命名空间变得越来越流行,尤其是在应用程序开发中,并且C ++确实支持C语言中缺少的命名空间。
C的一个令人讨厌的功能是您需要在它们的作用域的开始即所有的变量或函数的左括号之后声明所有变量。在C ++中,在任何位置定义一个变量,最好是最靠近使用它的地方。
在C中,全局变量可以具有多个声明。C ++更为严格,不允许这样做。
毕竟,C ++是面向对象的。诸如抽象,继承,多态之类的事情无法在C中完成。它为您带来了全新的范例。如果喜欢,请使用它。如果没有,您可以不用它(但是C ++的许多功能都是围绕类构建的)。
是否曾经想过创建仅在处理的数据类型上有所不同的类似功能?您可以通过函数重载来做到这一点,但这通常用于名称相同但行为不同的函数。如果您想做完全一样的事情但针对不同的数据类型该怎么办?为此编写多个函数没有多大意义。而且,函数重载不支持仅返回类型不同的函数。模板就在这里。您可以创建泛型函数和类,并将其与任何数据类型一起使用。C ++有,C没有。
C ++具有STL,这是一个非常有用的模板化类列表(因此,您可以将它们用于各种数据类型)。您已经准备好算法,数据结构,迭代器等。也许每个C ++程序员都会夸赞C编码器。
“C跟C++有什么区别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!