C#与C++的异同,侧重相同点,面向过程与面向对象的异同点

如题所述

1、C#和c++的库文件引入机制不同,一个是头文件,一个是命名空间,c#的命名空间灵活很多。
2、c#的任何数据类型,不管是简单数据类型、结构体、类、接口、数组,都可以当作函数的返回值,c++却有的不行 ,c++很多东西只能返回指针,不能直接体现程序开发逻辑。
举例c++里返回一个int数组,只能写成int*,你是不能直接直接知道,返回的究竟只是个指针还是一个数组,并且要知道数组数量是很复杂的事情,c#里同样的事情简单到极致,同样的事情c++可能建立结构体或者类,才能方便点。你会发现实际情况里返回一个数组,是实际开发中最有可能的。可是c++铁支持的不好。
3、指针,指针的问题,很多人说是c、c++的强悍,其实用过c#里的ref的人会发现c的指针是多么的多余。而且指向指针的指针这类东西,对于读程的人无疑是地狱里的噩梦。所以c++适合性能要求极致或者不支持别的语言的地方,c#适合其他所有情况。没错,c#能做的事情,c++都能做,但是c#能很短时间做到的事情,这里的时间是指学习、开发、调试等这些时间,c#的开发和学习效率不是c++能比得。
4、简单性,c++的复杂很多编程多年的人,特别是不是用c、c++起步的人,再去学去用c、c++里比较复杂的地方的时候都会觉得用c++有太多细节需要考虑。更不要说新手了,其实你会发现使用java、c#的人谈论的大逻辑内容肯定比c++的使用者多,因为c++的使用者会需要面对更多小着眼点的难题,根本不是逻辑层面上的。
5、类的支持,c++是目前流行语言中唯一支持多继承的,这也是复杂性的体现,大多数的时候其实类很少那样去用,其实理由很简单,学过数据结构的人就应该只到存储结构----树、图,所有的复杂关系几乎都可以用这些来表示,但是所有的树或图都可以转换成最简单的树二叉树,也就是说二叉树就已经可以表示实际世界的关系了,而c#的类关系就是一颗二叉树。所以c++的多继承某种程度上是多余的。
6、C++的动态绑定和静态绑定,这个其实基本用过动态绑定的语言的人都不会觉得有必要存在静态绑定的。。。。当然这只是本人的意思,虽然同意的人还蛮多,这主要也体现了c++的复杂性。
7、语法的多义性,c++里在if里放一个赋值语句是可以的,但是c#里则不行,这类问题,包括操作符重载这类,极端的不利于调试和读程,几乎可以说灵活即失败。。。
8、c#的语法支持比较完整、纯正的委托、事件、属性、索引器等这些,包括异常处理这类东西,c++都是模拟的。
9、c++有很多语法、和功能都会把初学者和不好的c++程序员待上外路,比如出现 int***、操作符重载等等很多。c# 这类东西少很多很多。简单了。
10,面向过程和面向对象,这个标的很大,用的好的面向对象编程可以完全模拟面向过程的模式,利用静态方法和静态类就可以了,而面向对象本身的三个基本特性就是解决了面向过程在大规模开发中的不足而存在的,即封装、多态、继承,简单的说封装是为了尽可能对类外部隐藏数据,以免有被外部污染的可能;多态是为了以不同的方式、不同的类来实现一个公共接口(行为)的能力,这完全模拟显示世界比如同样是猫科动物的狮子和猫,都能叫,能叫就是同样继承自猫科的行为能力,叫声就是具体的行为实现 ,两个类对同一个方法的不同实现就是多态的一种主要形式。继承则是为了能够重复利用现有的方法实现,类中已经定义好的存储结构。
面向对象用的好可以比面向过程更好的组织实际的方法实现和存储结构。
温馨提示:内容为网友见解,仅供参考
无其他回答

C#与C++的异同,侧重相同点,面向过程与面向对象的异同点
1、C#和c++的库文件引入机制不同,一个是头文件,一个是命名空间,c#的命名空间灵活很多。2、c#的任何数据类型,不管是简单数据类型、结构体、类、接口、数组,都可以当作函数的返回值,c++却有的不行 ,c++很多东西只能返回指针,不能直接体现程序开发逻辑。举例c++里返回一个int数组,只能写成int*,...

C、C++、C#这几个语言有什么异同点?有什么优点和缺点?
c是面向过程的语言 c++是面向对象的,但是还保留对面向过程的支持 c#是和java有点类似,可以说是完全面向对想的 c优点是语法简洁,面向过程的思路很好理解,而且对底层硬件的操作支持很好,C++面向对象支持类啊什么的对与开发叫大的应用程序比较好,C#主要在开发网络应用程序时会很方便。C可以用记事本就...

C语言、C++与C#的不同点与相同点,各自的适用性
1)语法都是相通的。2)C语言是面向过程的语言,C++与C#是面向对象语言,这是最大的区别,最大的不同,很重要的,如果要学习C++与C#,必须掌握面向对象思维,都不难。3)C++与C#适合软件程序开发而且方便快捷,界面都是可以现成的,你一个人就很容易做出一个软件来,而C语言比较适合底层开发,效率比较...

c语言,C++,C#有什么区别和共同点
runtime)的基础上,是完全面向对象的语言。c语言编译与c++编译都一样,是生成特定系统识别的机器语言。但c#编译完全不同,它生成为msil(微软中间语言),然后交给公共语言运行时(crl)执行,在生成特定机器识别的语言。所以c#运行必须安装.net framework。另外,c和c++语法90%相似,而且通常支持c++的编译...

C,C#,C++之间有什么相同和不同之处?他们之间的基础是什么
三者的面向不同 c主要是面向过程的语言,语言以函数为组成单位,主要用于开发中低层的程序,比如系统程序\\驱动程序\\硬件嵌入式等,直接翻译成机器目标代码执行 c++既支持面向过程又支持面向对象,在c的基础上提供了面向对象,以类来组织程序,但是又完全的支持c,现在一般都用C++开发,用纯C语言的比较少了,是...

c# c c++ 这三个分别是三种语言吗?要是不同的语言,它们相同之处在那里...
C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。注意,这里就出现了C与C++的一个不同点:C是面向过程的计算机语言,而C++则是面向对象的计算机语言。C++是由C发展而来的,它比C要复杂...

C\/C++的区别,面向对象与面向过程区别
可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一。功能上的统一保证了...

c#和c++区别
1、语言类型:C++是一种多范式编程语言,支持面向过程、面向对象和泛型编程。而C#是一种面向对象的编程语言。2、执行方式:C++是一种编译型语言,代码需要通过编译器转换成机器码后才能执行。而C#是一种解释型语言,代码通过.NET运行时解释执行。3、内存管理:C++提供了手动内存管理的能力,开发者需要自己...

C\/C++的区别,面向对象与面向过程区别
对象就是将数据和算法打包在一起,作为一个整体模块,程序在调用对象时就装入整个模块。面向过程是将数据和算法分开,算法只是规定了函数数据接口,这些数据接口经过运算后会被更新,可以这么说,数据并不知道经过什么运算,函数也不知道他的运算数据是谁,各干各的整个过程由编程者全程操控。面向对象则是...

C#和C++有何区别与联系?能兼容吗
首先,C# 是一种纯粹的面向对象编程语言。它完全摒弃了全局函数和变量,所有函数和变量都必须是类的成员。这与 Java 类似,完全抛弃了传统的面向过程编程。而 C++ 兼容了 C 语言,支持面向对象与面向过程编程的混合,但这种灵活性可能会破坏封装性。其次,C# 通过改进 C++ 的复杂和容易出错的语法,如...

相似回答
大家正在搜