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语言中面向对象编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信号量 Linux(linux信号量编程
- 下一篇: ddos攻击日志(ddos 检测 日志)