C/C++ 面向物件和麵向過程區別
阿新 • • 發佈:2019-01-27
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)多型:一個函式介面根據實際需求完成不同功能,比如:打這個動作,可以打羽毛球,打電話,打乒乓球。。。。。。