struct在c語言中已經有了自己的含義,必須繼續相容
在c++中提供了新的關鍵字class用於類定義
class和struct的用法是完全相同的
class和struct有什麼區別?
在用struct定義類時,所有成員的預設訪問級別是public
在用class定義類時,所有成員的預設訪問級別是private
(定義類,不要用結構體用class)
小例項:
需求:開發乙個用於四則運算的類
提供setoperator函式設定運算型別
提供setparameter函式設定運算引數
提供result函式進行運算
其返回值表示運算的合理性
通過引用引數返回結果
c++中的類支援宣告和實現的分離
將類的實現和定義分開
.h標頭檔案中只有類的宣告:成員變數和成員函式的宣告
.cpp原始檔中完成類的其它實現:成員函式的具體實現
下面就上面的小例項感受類的真正形態。
2.1 .**件
#pragma once
class operator
;
2.2.cpp檔案
#include "operator.h"
#include using namespace std;
bool operator::setoperator(char op)
else
return ret;
}void operator::setparameter(double p1,double p2)
bool operator::result(double& r)
else
break;
case '+':
r = mp1 + mp2;
break;
case '-':
r = mp1 - mp2;
break;
case '*':
r = mp1 * mp2;
break;
default:
ret = false;
break;
} return ret;
}
3.mian檔案
#include"operator.h"
#include int main()
else
system("pause");
return 0;
}
分析一波;
在類的標頭檔案中3個私有變數的作用?
mop返回操作符號,這個操作符號只能是內部函式使用,使用在函式setoperator,將使用者輸入的+賦值給mop;
當呼叫result()函式的時候,可以直接使用mop(類中私有變數)判斷具體使用哪個計算。
mp1和mp2主要是在呼叫setparameter 的時候將使用者輸入的2個數賦值給類內物件,然後給result()函式使用。
要是我可能就不會這樣,因為我對類內變數的使用還不是很清楚,我覺得這個小案例,應該從下面的思路去思考。
1.使用者只是需要輸入 + - * /
2.使用者輸入 2個數
那麼我要對它輸入的數,來實現。所以我一定在類中包括上面輸入的數。然後根據他們,再去設計函式去實現功能。
第16課類的真正形態
類的真正形態 上 問題 經過不停的改進,結構體struct變得越來越不像它在c語言中的樣子了。在c語言中,struct中是不能定義成員函式的,你如果實在想用成員函式,只能定義成函式指標的形式。這種方式在核心中太普遍了。struct 在c語言中已經有了自己的含義,因此c 也得必須繼續相容,但是在相容的...
16 類的真正形態
問題 class和struct有什麼區別?範例 class的初探 include struct a class b int main int argc,const char argv c 中的類支援宣告和實現的分離 將類的實現和定義分開 範例 綜合程式 四則運算 operator.h檔案 ifnde...
C 的第16節課
主講 建立windows窗體 主要內容 如何建立windows窗體 定製窗體的外觀。將控制項加入到windows窗 體中 使用文字框,標籤等 通過設定控制項的屬性定製其外觀 將事件和控制項stem關聯起來 16.1使用windows窗體 16.3定製 窗體的外觀,前乙個程式清單包含乙個基本窗體,於f...