三月听我说石臼墙话板河南科技学院

C语言/C++/C#的区别在什么地方?

2021-03-20  本文已影响0人  胡小毛

C语言和C++、C#的区别在什么地方

在这里给他们三个布置一个任务看他们如何去解决,看完你就明白了

例举一个经典的任务:把大象放进冰箱里,让我们先来看看C语言是如何去解决的。

C

c语言是一个极其高冷的人,因此回答都是冷冰冰的。

我:你好C语言,我想把大象放到冰箱里,帮我做好不好?

C语言:

我:那我们要怎么做呢?

C语言:猜

:额…是不是应该先创造一只大象?

C语言:是

:怎么创造呢?

C语言:猜

我只好去翻了一下文档,哦,malloc一块内存啊。

:好的,我用malloc,申请一块空间放大象好不好?

C语言:好

:额…大象怎么构造呢?

C语言:猜

…我去看了看大象的结构

:好吧…我定义了一个大象的数据结构,接下来怎么做?

C语言:猜

我心里有一阵说不出的感觉…

:哦好吧,我创造了一个冰箱,步骤应该和大象差不多

C语言:嗯

我翻看了冰箱的数据结构,然后定义了一个冰箱的struct。

:好了,冰箱构造出来了,怎么放呢?

C语言:哼。

我:…默默在stack overflow上输入“如何把大象放进冰箱 C”。

我:

终于找到答案了,定义一个方法,把大象鼻子放进去、眼睛放进去、耳朵放进去。

Ok,都放进去了。C,你输出一下看看吧。

C语言:烫烫烫烫烫烫烫

:哈哈哈哈C你终于不高冷了。

。。。。

:哎,你咋不说话了?C?你发烧了吗?

立刻一盆水倒上去

 

C++

再让我们看看C++

C++是一个知识渊博的孩子,相对年轻,也没那么高冷

我:C艹,我们把大象放冰箱好吗?

C++:

:说好的不高冷呢

。。。

:额,我错了,亲爱的C++,我们把大象放进冰箱好吧。

C++:好的么么哒,大象的数据类型已经有人定义好了,你需要分别构造一个哦,冰箱也有人定义好了,你需要分别构造一个哦。

:好的。

于是我翻看了一下文档后知道了用new来构造

:OK,亲爱的C++,我想构造一个大象

C++:OK,构造大象的方法有13个吗,请问你选择哪一种呢?

:。。。。

:你介绍一下吧。

C++:OK,首先可以在栈上面构造,这么做的好处呢是可以方便资源管理。而且语法也好看一些,可以利用RAII,如果你不知道什么是RAII你可以去Cppreference上面查一下,当然你也可以在堆上构造,可以构造一只很大很大的大象,还有…

。。。

一个月后,C++终于讲完了,我也长满了胡须…刮了胡子之后继续工作。

:好的,C++,我就在栈上面构造一只大象吧。

C++:你不爱我了。

:???

C++:你都没有说“亲爱的”。

:。。。

:好吧,亲爱的C++,我想简单构造一只大象。

C++

好的呢,你可以选择构造一只非洲象还是美洲象,

象的肤色是什么样子的你可以设定一下,象的屁股大小你可以设定一下,

象的性别和性取向你看要什么…

。。。

:我就想要一只简单的,默认的就好。

C++:好的,构造出来了一只,你可以选择怎么初始化它,有13种方法,推荐使用最新的统一初始化

:。。。

:统一初始化

C++:好的,我们可以构造冰箱了。

:好。。。

经过一个月的选择,终于构造出了冰箱

C++:好的,冰箱提供了addElephant方法,可以直接使用哦。

:哇太棒了,好的,我就用这个方法。

C++:这个方法提供了多种重载,可以拷贝,移动,也可以直接转发,省的在移入冰箱之前构造一个大象。

:。。。你为啥不早说

C++:你为啥不早问

。。。

:就用移动的吧。

C++:OK,请用std::move将构造好的大象转为右值引用。

我一脸懵逼,但是照办了。

:好啦。

C++:OK,开始放入冰箱了哦,速度极快的呢。

突然

C++:报错了报错了,分子和原子不是可以转换的类型,大熊猫和爱迪生之间没有+运算符等1556项错误

:。。。

网上找资料,说看最一行就差不多了,好的看看。

嗯,看起来是第31行出错了,错误是什么?

报错信息啥也没说明白啊。随便改改吧。

编译,运行。

C++:好的,已经将臀围12米,左臂长13米,右臂长14米,喜欢公大象,没有结婚生子,从下家教不错,熟读四书五经的非洲母象放入橘黄色50米高,60米宽,300米厚,温度有零下300度,制冷的牌子是湖澈牌,额定电压220V的冰箱里。

:。。。长舒了一口气。

C#

好啦好啦到C#

:我想把大象放进冰箱。

C#:好的主人,我爸爸微软已经写好了大象类,也写好了冰箱类,你只需要new一下就好了。

:OK,new好了,放入冰箱。

C#:好的,已经放入,使用了冰箱的拓展方法addElephant<>()方法。

:嗯,你表现的很好,能不能放的稍微快一点,刚刚C++放的就很快。

C#:为了您的安全,不能。

:额。。。那我想调节一下大象耳朵的尺寸。

C#:对不起,不能调节。您可以设定大象耳朵的形状。已为您定义好多种耳朵形状,您还可以调整大象的肤色,已为您定义好多种肤色。

:算了不调了,就这样吧。

C#

好的。如果您需要速度,或者需要对大象的每个细节进行把握。还可以去看看我的弟弟,C++/CLR,他可以完成你提出的这些功能。

您也可以将他带到我这里来,我们可以一起工作的。

你也可以把C++完成的工作导出到二进制形式,我可以直接使用的。

:好的谢谢,不用了。

C#:好的,祝您生活愉快。

这下C语言、C++、C#、都分清楚了吗。

作者言:

为了让读者更好的理解C语言、C++、C#的区别,本文用对话的方式,通过将大象装冰箱的例子,幽默形象的让读者理解其本质过程。

详细区别,我会写一篇CSDN,总结介绍一下三者的联系与区别,并添加Java。

C语言/C++/C#,及JAVA/Python的区别在什么地方?

博客名在作者简书主页,个人介绍里。

上一篇 下一篇

猜你喜欢

热点阅读