C/C++ 面向对象和面向过程区别



C语言实现进程管理&add


#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<windows.h>

//面向过程的模式
//代码重用主要靠函数
//权限:C语言函数在任何文件都可以调用无法实现C++类的访问权限


void open(const char *path,const int mode)
{
	ShellExecuteA(0, "open", path, 0, 0, mode);
}

void all()
{
	system("tasklist");
}

void closebyname(const char *name)
{
	char cmdstr[100] = { 0 };
	sprintf(cmdstr, "taskkill /f /im %s", name);
	system(cmdstr);
}

void closebypid(const int num)
{
	char cmdstr[100] = { 0 };
	sprintf(cmdstr, "taskkill /pid %d", num);
	system(cmdstr);
}


void main1()
{
	all();
	open("notepad", 1);
	all();
	Sleep(2000);
	int  num;
	scanf("%d", &num);
	closebypid(num);
	//closebyname("notepad.exe");
	system("pause");

}


struct fu
{
	int a;
	int b;

};

//a+ bi,
struct fu  add(struct fu  fu1, struct fu  fu2)
{
	struct fu  fu3;
	fu3.a = fu1.a + fu2.a;
	fu3.b = fu1.b + fu2.b;
	return fu3;
}

void   main3()
{
	//数据可以随便被别人,可以随便被修改
	struct fu  fu1 = { 3, 4 };
	struct fu  fu2 = { 13, 4 };
	fu1.a += 3;
	struct fu  fu3 = add(fu1, fu2);
	printf("%d+%di", fu3.a, fu3.b);
	getchar();
}





C++实现进程管理&add

#define  _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include <windows.h>

//C++类的继承实现代码重用, C重用   函数

//类的封装实现权限,封装,数据与代码合为一体。C封装主要是函数

//封装可以锁定代码的权限,锁定的数据的权限,避免被随意修改

//类的多态,一个接口根据实际需求完成很多不同的功能

class cmduse
{
private:
	char cmduser[100];//用户名
	char cmd[100];//存储指令
public:
	void setuser(const char * name)
	{
		strcpy(cmduser, name);
	}
	char * getuser()
	{
		return this->cmduser;//返回用户名
	}
	void open(const char *path, const int mode)
	{
		ShellExecuteA(0, "open", path, 0, 0, mode);
	}

	void all()
	{
		system("tasklist");
	}

	void closebyname(const char *name)
	{
		memset(this->cmd, 0, 100);//清空字符串
		sprintf(this->cmd, "taskkill /f /im %s", name);
		system(this->cmd);
	}

	void closebypid(const int num)
	{
		memset(this->cmd, 0, 100);//清空字符串
		sprintf(this->cmd, "taskkill /pid %d", num);
		system(this->cmd);
	}


};


void main2()
{
	cmduse cmduse1;
	cmduse1.setuser("yincheng");
	std::cout << cmduse1.getuser() << std::endl;
	cmduse1.open("calc",1);
	cmduse1.open("notepad",0);
	Sleep(2000);
	cmduse1.all();
	cmduse1.closebyname("calc");
	int pid;
	std::cin >> pid;
	cmduse1.closebypid(pid);//根据编号关闭

	std::cin.get();
	std::cin.get();
	//closebypid(100);

}

//封装可以实现代码权限,不可以随便调用




class 
{
public:
	void seta(int a)
	{
		//接口
		this->a = a;
	}
	int geta()
	{
		return this->a;
	}
	void setb(int b)
	{
		//接口
		this->b = b;
	}
	int getb()
	{
		return this->b;
	}

protected:

private:
	int a;
	int b;
	char password[100];
}myab;//匿名的类,对象唯一不能new。例如公司董事长只有一个

void main()
{

//	myab.geta = 3;
	myab.seta(10);
	//封装解决的问题
	//类的,代码与数据,一体化
    //代码的封装,限定代码谁可以执行谁不可以执行的权限
	//数据的封装,防止数据被意外修改


}


总结:
C语言: 首先思想是面向过程,数据和函数接口是独立分开的。它以每个函数的实现为核心。
C++:它是面向对象的思想,数据和函数以类的形式一体化,且有了权限。以类为核心,先设计类,再实现代码!
C语言没有底线一处实现四处调用。


C++   
1) 继承:实现代码复用,富二代有个牛逼的爸爸,可以继承老爸的所有 
2) 封装:类既是封装的体现,实现了函数和变量的一体化。给函数和变量赋予了权限
3)多态:一个函数接口根据实际需求完成不同功能,比如:打这个动作,可以打羽毛球,打电话,打乒乓球。。。。。。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值