如何用C语言实现面向对象

来源:百度知道 编辑:UC知道 时间:2024/05/26 17:11:35
请问如何用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