中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么理解C++中的類和對象

發布時間:2021-11-10 22:46:58 來源:億速云 閱讀:123 作者:柒染 欄目:開發技術

怎么理解C++中的類和對象,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

c++類的由來(或者說為什么要增加類):我們知道c語言是面向過程的語言,c++是即面向過程又是面向過程的語言。那么這兩個有著什么樣的區別和聯系呢?

C語言和C++的一大區別

接下來我們利用c語言的struct來說明:

C 語言中,結構體中只能定義變量。 在 C++ 中,結構體內不僅可以定義變量,也可以定義函數。 例如:如果我們用C語言實現一下的功能,那么我們會發現,在struct內我們只能去定義一些變量 的類型,而我們需要的函數反而要去單獨去實現

typedef struct Student 
{
	char _name[20];
	int _age;
	char _sex[10];
}student;
  void SetStudentInfo(const char* name, const char* sex, int age)
 {
strcpy(_name, name);
strcpy(_sex, gender);
_age = age;
 }
  void print(student *s) 
{
	printf("%c:%age-%c", s->_name, s->_age, s->_sex);
 }

在c++內實現的話是:

// 這里是為了和c語言做出區別所以將函數的定義也直接放到結構體內作為內聯函數,
如果函數的定義代碼很多或者需要調用的次數多建議此處就只進行聲明,之后在單獨進行定義
struct Student 
{
 void SetStudentInfo(const char* name, const char* sex, int age)
 {
strcpy(_name, name);
strcpy(_sex, gender);
_age = age;
 }
 void print(student *s) 
{
	printf("%c:%age-%c", s->_name, s->_age, s->_sex);//此處為了區別和c語言struct的不同點利用了c語言的輸出方法
 }
 	char _name[20];
	int _age;
	char _sex[10];
};

從上述例子我們可以看出在c++中struct可以包含函數的定義和變量,反觀在c語言內struct就只能包含變量。

struct和class的區別

在c++中我們引入一個關鍵詞class來指定指定這種既可以包含變量又可以包含函數聲明的類型即為c++的類。struct在c++中也是類但是和class修飾還是有一些區別。我們用上述代碼來說明這個區別:

這是struct修飾的類

struct Student 
{
 void SetStudentInfo(const char* name, const char* sex, int age);
 void print(student *s) 
 	char _name[20];
	int _age;
	char _sex[10];
}

這是class修飾的類

struct Student 
{
public:
void SetStudentInfo(const char* name, const char* sex, int age);
 void print(student *s) 
private:
 	char _name[20];
	int _age;
	char _sex[10];
}

在類中我們保護我們我們的數據,我們引入三種修飾:publicprivateprotected,這三個關鍵詞代表著不同的權限。

而struct默認的是成員函數和成員變量都是public,而class修飾的話成員函數和成員變量都是必須給予修飾的,一般我們是將成員函數用public修飾而成員變量我們用private修飾。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

吉林省| 奉化市| 舒兰市| 永新县| 乐东| 苏尼特右旗| 石楼县| 天津市| 芮城县| 宜城市| 嘉峪关市| 资源县| 聊城市| 新安县| 福建省| 雷山县| 孝昌县| 东源县| 治县。| 白水县| 兴和县| 巴林右旗| 江永县| 富源县| 荃湾区| 乐昌市| 西城区| 洛浦县| 子洲县| 东乡| 镇沅| 海淀区| 腾冲县| 宁明县| 石城县| 鱼台县| 濉溪县| 乌兰浩特市| 青浦区| 邻水| 甘孜|