c语言是否是面向对象的程序语言?

来源:悟空问答 编辑:王志 手机版

面向对象和面向过程都是编程思想,分别以对象和过程为主要目标进行编程。 1、面向对象:面向对象(Object Oriented)是一种软件开发方法。Object Oriented的概念和应用已经超越了编程和软件开发。面向对象是一种理解和抽象现实世界的方法。它是

c语言是否是面向对象的程序语言?

由热心用户 用户5141753863750 提供的回答:

是面向过程的程序设计语言c语言是一种以过程为中心的编程思想。

不对,面向对象必须以类class为基础,以类为程序的基本单位而C语言是以函数为程序的基本单位,没有类的概念,所以不是面向对象C语言应属于结构化程序设计模式,即使用顺序分支循环三种结构完成所有事情,以过程(在C语言中是函数)为基本单位,因此它是面向过程的

java和c语言面向对象与面向过程程序设计有如下不同: (1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。 函数与

声明:本内容来自悟空问答,版权归悟空问答所有,本网旨在传播知识,不代表本网赞同以上意见,如有任何问题请与本网联系!

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤

扩展阅读,根据您访问的内容系统为您准备了以下扩展内容,希望对您有帮助。

C语言是面向对象的吗

不对,面向对象必须以类class为基础,以类为程序的基本单位

而C语言是以函数为程序的基本单位,没有类的概念,所以不是面向对象

C语言应属于结构化程序设计模式,即使用顺序分支循环三种结构完成所有事情,以过程(在C语言中是函数)为基本单位,因此它是面向过程的

c语言和c++语言有什么区别?什么叫做面向对象程序设计?c语言不是吗?各自优点?求生动解释,谢谢。

其实你这个问题在每一本C++的书上都有

c是面向过程的语言,而C++既能面向对象又能面向过程

对象应该学C++的老手都知道吧:就是用类封装起来的一个一个的东西

比如一个类class Human,后面可以定义它的属性(成员数据、成员函数等)

一个类就像人类这种类一样,它可以有它的子类(男人、女人、黑人、白人之类的),也可以父类(哺乳动物、生物之类的)但每一个类的对象(每一个人)不可能全相同,否则类就没有意义了,所以每个对象有它自己的数据,就像人都有自己的个性一样

而成员数据就像人的内脏、五官组成一样

因此大家关心的是一个对象,而不是它的内脏这种东西,对象就做到了这一点,你完全可以很简单地了解它,使用它,而不用关心它的内在是怎样工作的,就像大多数人会开车却不懂汽车里面到底怎么运行的一样,

但C的话一切都要靠自己写,没有对象概念,不能直接使用对象,就是面向过程了

说白了:一个对象就是一个整体,就像普通的数据类型的一样,不过它更复杂

为什么C语言不能按照面向对象的思想来编程。

当然可以用C语言进行面向对象编程。

面向对象本身是一种思想,而用哪种语言实现只是一种技术手段。事实上思想和技术的关系本身就是class和object的关系。

class oo {

//这是面向对象的思想类

};

oo java; //java是oo的一个具体的技术实现

oo cxx; //c++是oo的一个具体的技术实现

拿Windows系统来讲,它是有C语言编写的,但是使用的却是面向对象的思想,这方面可以参考reactos(一个免费开源的用于大学教授操作系统原理的windows系统)。

举一个例子也许更实际一些,比如,操作系统有两种操作界面,一种是GUI界面,一种是控制台界面,在windows平台上编写一个程序,在cmd中运行时,执行控制台界面的代码,在GUI中运行的时候,执行图形界面的代码。这实际上也算是一种面向对象编程中的多态实例。以下示例代码在vc6.0编译通过。#include <stdio.h> 

#include <tchar.h>

#include <windows.h>

#include <TLHELP32.H>

char what_shell_run()

{

HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (hSnap==0){

return _T('E');

}

PROCESSENTRY32 pe32 = {0};

pe32.dwSize = sizeof pe32;

DWORD dwSelfPid = GetCurrentProcessId();

DWORD dwParentPid = ~0;

for (BOOL bLoop=Process32First(hSnap, &pe32); bLoop!=FALSE; bLoop=Process32Next(hSnap, &pe32))

{

if (dwSelfPid==pe32.th32ProcessID){

dwParentPid = pe32.th32ParentProcessID;

break;

}

}

if (dwParentPid==~0) return _T('U');

for (bLoop=Process32First(hSnap, &pe32); bLoop!=FALSE; bLoop=Process32Next(hSnap, &pe32))

{

if (dwParentPid==pe32.th32ProcessID){

if (lstrcmpi(pe32.szExeFile, _T("cmd.exe"))==0)

{

CloseHandle(hSnap);

return _T('C');

}else if (lstrcmpi(pe32.szExeFile, _T("explorer.exe"))==0){

CloseHandle(hSnap);

return _T('G');

}

}  

}

CloseHandle(hSnap);

return _T('U');

}

void console(void) {

printf("这是一控制台程序\n");

}

void gui (void) {

MessageBox(0, _T("这是一个GUI程序"), _T("GUI"), MB_OK);

}

int main()

{

char ch = what_shell_run();

switch (ch)

{

case 'C':

console();break;

case 'G':

gui(); break;

}

return 0;

}

[更多阅读]

  • C语言是面向对象的吗
  • c语言和c++语言有什么区别?什么叫做面向对象程序...
  • 为什么C语言不能按照面向对象的思想来编程。
  • C语言是面向什么的程序设计语言
  • C语言能不能面向对象?
  • 在C语言中,什么叫做面向对象,什么叫做面向过程?
  • C语言是一种面向对象的程序设计语言。错哪?
  • Java里面的面向对象和C语言里面的面向过程分别是什...
  • 在C语言中,什么叫做“面向对象”,什么叫做“面向过...
  • C语言,里的面向对象是什么意思?
  • c语言是否是面向对象的程序语言? 相关搜索
    最新推荐
    热门推荐