日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言中面向对象编程

發布時間:2023/12/2 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言中面向对象编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言中面相對象的編程

面向對象的重要思想就是數據隱藏,在面向對象語言中,對象可以包含私有變量。這樣我們可以說他們具有內部狀態,這些內部狀態對其他對象是透明的。全局變量可以通過設置變量作用域來模擬私有變量(甚至友元對象)。

首先是C語言中公共變量的對等實現

這些全局變量會導致意大利面條式的代碼。為了避免這些問題,可以在函數外部用static關鍵字定義一個私有變量,并且定義在文件的頭部。

static 關鍵字在不同的地方用處不一樣。

一組松散的變量有點難以追蹤,所以可以考慮將一個模塊內部的私有變量封裝到結構體中:

struct sLogStruct* LogInit(){

tBoolean logOn;

static enum eLogLevel outputLevel[NUM_LOG_SUBSYSTENS];

}sLogStruct;

Static struct sLogStruct gLogData;

如果想讓代碼看起來像個對象,那么這個結構體就不應該是這個模塊的一部分,而英國在初始化的時候創建(分配內存malloc),然后將其返回給調用函數。

struct sLogStruct *LogInit(){

int I;

struct sLogStruct *logData = malloc(sizeof(*logData));

logData->logOn = FALSE;

for(I = 0; I

{

logData->outputLevel = eNoLogging;

}

return logData;

}

這樣就可以想對象一樣傳遞這個結構體了。malloc了的變量記得要釋放,在接口中會增加一個函數去釋放就可以了。

聲明:

本文于網絡整理,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。

總結

以上是生活随笔為你收集整理的C语言中面向对象编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。