永发信息网

c++面向对象高效编程 怎么样

答案:1  悬赏:60  手机版
解决时间 2021-03-28 05:19
  • 提问者网友:相思似海深
  • 2021-03-27 16:29
c++面向对象高效编程 怎么样
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-03-27 16:55

当然可以!


面向对象本身是一种思想,而用哪种语言实现只是一种技术手段。事实上思想和技术的关系本身就是class和object的关系。
class oo {
//这是面向对象的思想类
}; 
oo java; //java是oo的一个具体的技术实现
oo cxx; //c++是oo的一个具体的技术实现
拿Windows系统来讲,它是有C语言编写的,但是使用的却是面向对象的思想,这方面可以参考reactos(一个开源的用于大学教授操作系统原理的windows系统)。


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


在GUI界面运行该程序的结果:

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯