c/c++都说面向过程,面向过程解释一下(举一些代码方面例子)?另外现在很多程序是c编的,c++多吗?

首先非常感谢您的回答,我知道您不会在意那几个财富的。那你就把它看做对一后辈解惑。(另:别在一些地方粘贴来就上这写)360°鞠躬。也许我陷入了误区我们最近数据结构试验弄哈夫... 首先非常感谢您的回答,我知道您不会在意那几个财富的。那你就把它看做对一后辈解惑。(另:别在一些地方粘贴来就上这写)360°鞠躬。也许我陷入了误区我们最近数据结构试验弄哈夫曼编码解码器自信心受打击了吧。给我谈谈学习过程也行。谢谢。 展开
 我来答
人生如浮
2013-05-13 · 超过11用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:53.6万
展开全部
首先,我真的很在意那个财富值,好高……呵呵,看来你也是学计算机的吧,不出意料的话,你应该也是没有学c语言,直接学c++,然后老师告诉你c语言是面向过程的,c++是一种面向对象的语言,然后在你的学习过程中,你就是搞不明白为什么c++是面向对象的,c语言是面向过程的,呵呵,还是说点有用的,我是被学了c++,自学了c语言,然后听了一些厉害的老师的课,好像有点感觉。
首先肯定的是c和c++都是面向过程的语言,同时c++又是面向对象的语言,那么什么是面向过程呢?什么是面向对象,主要区别是什么?
面向过程,说白了就是面向数据,举个例子,现在让你写一个函数完成两个数的加法,那么如果用c语言写的话,有个什么问题呢,写写试试,写好了再往下看,
用c语言写个,

用c++写个

c语言关键的问题就在于我要知道这两个数的数据类型,看下面这个程序:
#include<stdio.h>
double jiafa(double a,double b)
{
double c=a+b;
return c;
}
int jiafab(int a,int b)
{
int c=a+b;
return c;
}
int main()
{
double z,x=4.5,y=5.6;
int s,m=3,n=4;
z=jiafa(4.5,5.6);
s=jiafab(3,4);
return 0;
}
对于int型数据我要写个int型的函数,对于double类型的加法我要写个double类型的函数,而且这两个函数的名字一定不能相同,在函数调用的时候,必须严格区分是调用double型的那个函数还是调用int型的那个函数。
再看看用c++写这个程序会是什么样子:
#include<iostream.h>
double jiafa(double a,double b)
{
double c=a+b;
return c;
}
int jiafa(int a,int b)
{
int c=a+b;
return c;
}
int main()
{
double z,x=4.5,y=5.6;
int s,m=3,n=4;
z=jiafa(4.5,5.6);
s=jiafa(3,4);
return 0;
}
首先说一下这个在c++中叫做重载,面向对象主要面向的是方法,这个程序可以看出我不需要知道你是double型数据还是int型数据,我定义一个名字为jiafa的函数,然后通过重载的方式,定义两个同为jiafa的函数,一个做double数据加法,一个做int数据加法,在程序运行的时候,系统会根据你输入的数据的类型,自动选用调用哪个函数,这个时候我需要考虑的是什么,不再是考虑数据的类型了,而是只需要考虑方法就行了,c++也可以是面向过程的,像开始的那个c语言程序一样定义两个函数,c++也是可以运行的,但是重载c语言就做不到了,下面这个程序c语言更做不到
可能刚才那个c++程序还不是很明显,下面看这个c++程序:
#include<iostream.h>
template <class T>
T jiafa(T a,T b)
{
T c=a+b;
return c;
}
int main()
{
double z,x=4.5,y=5.6;
int s,m=3,n=4;
z=jiafa(4.5,5.6);
s=jiafa(3,4);
return 0;
}
再说明一下,这个在c++中叫做模板,现在是不是更明显了,我更加不需要关心数据是什么类型的,而主要关心怎么实现两个数的加法,不必在乎这两个数据是什么类型。
面向对象中提到最多的就是类的概念,三大特性:封装,继承,多态……面向对象的思想很不好体会,主要的问题就是我们接触的问题规模都太小,用c语言解决和用c++解决没有什么区别,可能有些同学,学了好长时间,就感觉到一点c和c++的区别,c语言的输入输出用scanf() printf() c++的输入输出用cin 和cout
如果你想感受的更深一点,你可以试试写一下复数的加减乘除,c++用类和运算符重载的思想写,c语言随你怎么写,你可能会对c++和c的区别,面向对象和面向过程的区别理解的更好……

还有一个问题是哈弗曼编码解码,如果你是用c++写的,那么你可以看一下c语言是如何实现的,我只能说c语言在解决这种问题上确实简单高效……
你现在才学到数据结构,接触的程序还是有点少,c和c++都很重要,之所以你现在感受不到c++的重要性,一个是我们平时写程序真的没有在用c++的精髓思想,我们用的是c++的语法,但是用的还是c语言的思想,曾经一个老师告诉我,我这个学校没有老师能讲出来c++的思想,所以导致你们学的是c++,用的是c语言的思想,另一个是你现在接触的程序规模太小,你写的程序最多最多不过千行,还没有见到几万行的程序,大规模的程序现在更多都是用c++,或者说更多的都是用面向对象的思想……
希望对你有帮助,可能讲的还是有点云里雾里,不过有一点我做到了,这段话是绝版,不是复制粘贴的,还有就是那三个程序也是自己写的,呵呵……
fup_86
2013-05-13 · TA获得超过216个赞
知道小有建树答主
回答量:263
采纳率:100%
帮助的人:102万
展开全部
面向过程对应的是面向对象。
过程是指程序的过程。比如我在C 语言下要打印一句话,我必须这样写
printf("%d\n",num); 我需要考虑打印的整个过程,包括数据的类型,参数个数,都给程序员自己设定。

面向对象就不同了,你只要知道你想干什么就行。同样打印一句话。你可能只需要调一个函数
cout《《num; 这句话的意思也是打印num这个数,你不用再考虑它的类型,之类具体的东西。程序就帮你做了。你看出来了吗?你只要考虑整个程序该干什么的问题,至于具体怎么样做,这个问题你已经解放出来了。
更多追问追答
追问
第二个问题呢?按你说第一个问题c++比c集成好函数库强大是吗?其实我觉得不太可能那么点区别。
追答
C++里面有类和对象的概念了,“对象提供了模型化和信息隐藏的好处。类提供了可 重用性的好处。自行车制造商一遍一遍地重用相同 的蓝图来制造大量的自行车。软件程序员用相同 的类,即相同的代码一遍一遍地建立对象。”,你可以搜搜类的概念。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式