请问C++和C#的区别和各自的前景,还有PHP
发布网友
发布时间:2022-04-26 15:37
我来回答
共5个回答
热心网友
时间:2023-10-12 07:29
c++和C#编程语言来说,只是它们的设计目的有所区别。
c++在设计之初希望提供先进的面向对象特性,同时提供很好的性能。但是为了保证和以往的程序、开发人员的知识兼容,c++与c语言几乎完全兼容。c语言本身其实就是现代计算机的高级抽象,可以直接访问地址、通过指针可以访问几乎任何内存地址;堆和栈的结构体现等待。当然c++也就具有了这样的特性。随着 c++的逐步发展,generic programming 泛型编程技术和stl标准模板库的引入,c++和c的差异越来越大。基本上c++是为了高效地使用面向对象技术或者泛型技术编写大规模高性能应用程序(往往是一些相对比较底层的应用程序)而设计的。
c#通过底层的虚拟机机制减少了c/c++语言中常常容易发生的内存泄漏和安全性问题,代价是运行速度减慢。同样的由于简化了编程语言的复杂性(c#远远比c++来得简单),大大提高了开发者得效率。另外c#具有.net庞大的类库,这个优势是c++所不具有的。因此c#非常合适开发企业中处理业务的应用程序。同时微软所有的操作系统、服务器程序、桌面端程序都在向.net平台统一。在历史上与次类似的情形(指微软技术)只有在微软从16位平台向32位平台转变的过程中发生过。因此现在.net的转变对开发者来说可能是痛苦的(因为要学习很多新的东西),但也充满了机会。
1.继承:C++支持多继承,C#类只能继承一个基类中的实现但可以实现多个接口。
2.数组:声明 C# 数组和声明 C++ 数组的语法不同。在 C# 中,“[]”标记出现在数组类型的后面。
3.数据类型:在C++中bool类可以与整型转换,但C#中bool 类型和其他类型(特别是 int)之间没有转换。long 类型:在 C# 中,long 数据类型为 64 位,而在 C++ 中为 32 位。
4.struct 类型:在 C# 中,类和结构在语义上不同。struct 是值类型,而 class 是引用类型。
5.switch 语句:与 C++ 中的 switch 语句不同,C# 不支持从一个 case 标签贯穿到另一个 case 标签。
6.delegate 类型:委托与 C++ 中的函数指针基本相似,但前者具有类型安全,是安全的。
7.从派生类调用重写基类成员。 base
8.使用 new 修饰符显式隐藏继承成员。
9.重写方法需要父类方法中用virtual声名,子类方法用override 关键字。
10.预处理器指令用于条件编译。C# 中不使用头文件。 C# 预处理器指令
11.异常处理:C#中引入了 finally 语句,这是C++没有的。
12.C# 运算符:C# 支持其他运算符,如 is 和 typeof。它还引入了某些逻辑运算符的不同功能。
13. static 的使用,static方法只能由类名调用,改变static变量。
14.在构造基类上替代 C++ 初始化列表的方法。
15.Main 方法和 C++ 及Java中的 main 函数的声明方式不同,Main而不能用main
16.方法参数:C# 支持 ref 和 out 参数,这两个参数取代指针通过引用传递参数。
17.在 C# 中只能在unsafe不安全模式下才使用指针。
18.在 C# 中以不同的方式执行重载运算符。
19.字符串:C# 字符串不同于 C++ 字符串。
20.foreach:C#从VB中引入了foreach关键字使得以循环访问数组和集合。
21.C# 中没有全局方法和全局变量:方法和变量必须包含在类型声明(如 class 或 struct)中。
22.C# 中没有头文件和 #include 指令:using 指令用于引用其他未完全限定类型名的命名空间中的类型。
23.C# 中的局部变量在初始化前不能使用。
24析构函数:在 C# 中,不能控制析构函数的调用时间,原因是析构函数由垃圾回收器自动调用。 析构函数
25构造函数:与 C++ 类似,如果在 C# 中没有提供类构造函数,则为您自动生成默认构造函数。该默认构造函数将所有字段初始化为它们的默认值。
26.在 C# 中,方法参数不能有默认值。如果要获得同样的效果,需使用方法重载。
其实有很多相通的地方。希望对你有所帮助。
热心网友
时间:2023-10-12 07:30
LZ既然这么说,认为那30分就能当爷爷(我不觉得这是提问者的态度),那我就复制一段专家的话吧, Bjarne Stroustrup的。如果你依然觉得是“就没一个能说出C++和C#的共通和不同之处的吗?”,那我也不知道复制谁的了。
我最后一次关注这个提问。
==================================
11. 您怎么看待C#语言?
就C#语言本身我没什么好说的。想让我相信这个世界还需要另外一个专有的语言可不是一件容易的事,而且这个语言还是专门针对某一个专有操作系统的,这就更让我难以接受。直截了当地说,我不是一个专有语言的痴迷者,而是一个开放的正式标准的拥护者。
10. 如果不必和C兼容,你所创造的语言是不是就会是Java?
不是,差得远。如果人们非要拿C++和Java来作比较,我建议他们去阅读The Design and Evolution of C++,看看C++为什么是今天这个样子,用我在设计C++时遵从的原则来检验这两种语言。这些原则与SUN的Java开发小组所持的理念显然是不同的。除了表面语法的相似性之外,C++与Java是截然不同的语言。在很多方面,Java更像Smalltalk(译者按:我学习Java时用的是Sun的培训教材,里面清楚地写道:Java在设计上采用了与C++相似的语法,与Smalltalk相似的语义。所以可以说Java与C++是貌合神离,与Smalltalk才是心有灵犀)。Java语言相对简单,这部分是一种错觉,部分是因为这种语言还不完整。随着时间的推移,Java在体积和复杂程度上都会大大增长。在体积上它会增长两到三倍,而且会出现一些实现相关的扩展或者库。这是一条每个成功的商业语言都必须走过的发展之路。随便分析一种你认为在很大范围内取得了成功的语言,我知道肯定是无有例外者,而且实际上这非常有道理。
上边这段话是在Java 1.1推出之前写的。我确信Java需要类似模板的机制,并且需要增强对于固有类型的支持。简单地说,就是为了基本的完整性也应该做这些工作。另外还需要做很多小的改动,大部分是扩展。1998年秋,我从James Gosling(Java语言的创始人——译者)那里得到一份建议书,说是要在Java中增加固有类型、操作符重载以及数学计算支持。还有一篇论文,是数学分析领域的世界级大师,伯克利大学的W. Kahan教授所写的How Java’s Floating-Point Hurts Everyone Everywhere(“且看Java的浮点运算如何危害了普天下的芸芸众生”——译者),揭露了Java的一些秘密。
我发现在电视和出版物中关于Java的鼓吹是不准确的,而且气势汹汹,让人讨厌。大肆叫嚣凡是非Java的代码都是垃圾,这是对程序员的侮辱;建议把所有的保留代码都用Java重写,这是丧心病狂,既不现实也不负责任。Sun和他的追随者似乎觉得为了对付微软罪恶的“帝国时代”,就必须如此自吹自擂。但是侮辱和欺诈只会把那些喜欢使用不同编程语言的程序员*到微软阵营里去。
Java并非平台无关,它本身就是平台。跟Windows一样,它也是一个专有的商业平台。也就是说,你可以为Windows/Intel编写代码,也可以为Java/JVM编写代码,在任何一种情况下,你都是在为一个属于某个公司的平台写代码,这些代码都是与该公司的商业利益扯在一起的。当然你可以使用任何一种语言,结合操作系统的机制来编写可供JVM执行的程序,但是JVM之类的东西是强烈地偏向于Java语言的。它一点也不像是通用的、公平的、语言中立的VM/OS。
私下里,我会坚持使用可移植的C++作大部分工作,用不同的语言作余下的工作。
热心网友
时间:2023-10-12 07:30
@sqxubin
Java就不依赖平台了?Sun都被收购了,还有前途么?C++跟C#又不一样,一个主要引用在底层、嵌入式系统之类的地方,C#主要用于Web开发,以后WPF也会普及。另外,web游戏现在流行用Flex开发,不要误导新人,谢谢
------------------
C++是半OOP,C#是完全OOP,C++内存需要程序员自己管理,C#有托管堆。C#需要.net环境,C++不用,不晓得LZ想知道些什么共同不共同的。Java不建议你学,就编程思想来说已经很落后于C#了
热心网友
时间:2023-10-12 07:31
只要微软存在一天,C#就有发展前途,2002到现在,市场份额发展了多少,看看就知道哦啊了
热心网友
时间:2023-10-12 07:31
python好
编程语言C,C++,C#,JAVA,PHP,NET有什么区别?
1.c是一个面向过程的开发语言;2.c++是一个面向对向(OOP)的开发流言,现在的大型软件很多都是用他开发的;3.c#是一种全新的语言,其对.net的支持最好,可能是以后的主流语言,因为c#是一个功能强大的面向对向开发语言,现在是微软强力推出的一种语言。c#不光可以开发程序,还可以开发网页,这也是...
计算机语言排行是怎样的?什么是最好的语言?
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。5、C C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#看起来与Java有着惊人的相似;它包括了诸如单一...
c#、java、php哪个好就业等问题及对比
结合3 、 就业前景都很好, 这三个语言目前都是排名前十的语言,北上广对PHP的需求会更大,一般二三线城市C#的需求更大。能力全面指的是开发技术?那么单独学一门语言理“全面”还有十万八千里,工作后还需要学很多东西,一般5年工龄的开发人员,能掌握3种语言(比如C# 、JS、SQL)才算合格,5种以...
请问cc++c#javaphp等编程语言都有什么区别啊?
c和c++都是直接编译成机器码的,编译好可直接运行;c#和java编译成中间码,需要虚拟机来运行;php是脚本语言,不需要编译,由解释器执行。使用上看,c多用于嵌入式、操作系统、驱动程序等底层开发;c++多用于游戏、应用软件、高性能网络服务等开发;java和c#一般用于web、应用程序、app、手机游戏等;php只做w...
PHP和C#相比有什么优缺点
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。区别:1.框架不一样,c#是.net framework。2.c#比php难,但是安全性更高,功能更全(php实现不了的c#能实现,但是都够用)。3.php是免费的,而c#是收费的。4.php与mysql搭配,而c#是与sql server搭配使用。
c c++ c# JAVA PHP Python 这些都是编程用的语言?还有哪些?区别在...
C#是微软的另一款编程语言,语法结构上与C相似,但与C是两种编程语言。PHP主要是网络开发 Python是一种解释型(程序运行时同步编译)的面向对象的编程语言。JAVA是一种跨平台的编程语言,运行使用JAVA编写的程序需要JAVA运行环境,比较适合开发Android系统的软件。初学者的话VB.Net是一个很好的选择,语法与...
c,c++,java和c#哪个适合pc游戏开发?
PHP都能用来写操作系统了,C++要写游戏,那要写到猴年马月,现在游戏开发语言用的最多的是C++,其次就是C#,CE3,U3D,Axiom等等游戏引擎都相继采用C#语言,C#支持指针,能够更精确的控制内存,语言特性很多,lambda,delegate,linq等设计巧夺天工,能够最大程度上平衡开发效率和运行效率 ...
php是c语言吗?
2、指代不同php:即“超文本预处理器”,是一种通用开源脚本语言。C语言:是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。特点不同php:是常用的网站编程语言。3、PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用...
vb、C/C++、java、c#、delphi、php哪个适合做视频聊天程序?分析下各 ...
1、Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。 您可以使用它轻易的构建高效率的即时通信服务器. Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。 由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务.2、...
C#和PHP的区别
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。区别:1.框架不一样,c#是.net framework。2.c#比php难,但是安全性更高,功能更全(php实现不了的c#能实现,但是都够用)。3.php是免费的,而c#是收费的。4.php与mysql搭配,而c#是与sql server搭配使用。