久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: [C++]筆記四: C++類通俗點說—— C結構體復習 [打印本頁]

作者: tyyhmtyyhm    時間: 2018-3-4 23:36
標題: [C++]筆記四: C++類通俗點說—— C結構體復習
C++類通俗點說—— C結構體復習
核心:
C++的類就是對C語言的結構體進行了擴展,C++的結構體可以包含函數(shù)!
------------------------------------------------------
前言
該資料為C++初學者整理,知識層次較低,大神可以路過,當然也可以留下來給我們指點迷津!萬分感激!
該資料需要讀者具備一定的C語言編程基礎!
從今天開始我們就起步做有關C++編程資料的整理,我們也正在學習C++,所以從一個初學者的角度去把握用怎樣的切入點能讓初學者看得過癮,學的通透!我們自己呢也從這個過程中去找漏洞,提升編程能力,這將不是一個知識的遷移過程,而是一個初學者與初學者的交流過程,所以我們的資料中有表述不準確的地方,還請讀者能夠指正!我們?nèi)f分感激!
---------------------------------------------------------------------------
我們學習C++為什么要復習C語言結構體呢?
在我看過的對C++進行講述的教材中,開篇往往是兩個字“對象”!因為C語言是面向過程的,而C++特色是面向對象!所以大多數(shù)書籍最開始就在說面向對象的事情。
但我在最初學習的過程中發(fā)現(xiàn)自己對“對象”這個詞匯....總是想偏,對這個詞匯云里霧里的,什么叫面向對象啊,看了一通沒看懂。所以我們先不深究什么叫面向對象。
我們先來略看一下C語言中的結構體。對于這個大家應該是很熟悉的,如果對C語言結構體的概念有模糊,請自行查閱資料。
-----------------------------------------------------
C語言結構體
在C語言編程中,我們定義自己的身高,可以用整型int變量,定義一家人(比如三口人)的身高,可以用int型數(shù)組。
如果我們要表示王者榮耀游戲中各個英雄的姓名、身高(單位cm)、體重(單位kg),這三種并不是同一類型的數(shù)據(jù),那我們就用到結構體了。
struct hero
{
   unsigned char name[10];
    int height;
    float weight;
};
struct hero LuBan; //定義“LuBan”變量
結構體或稱結構,就像int、float等基本類型一樣,也是一種數(shù)據(jù)類型,使用戶自己定義的,它允許存儲不同類型的數(shù)據(jù)項,就像上面的hero結構體。就像打包封裝,把一些有共同特征(上面的身高體重等都屬于同一個英雄)的變量封裝到內(nèi)部,通過一定的方法訪問和修改這些內(nèi)部變量。
關于更多的結構體的知識我們這里不多說。
我們在結構體內(nèi)部定義了一些變量,看到“LuBan”這個結構,我們就能查找到他的身高、體重等數(shù)據(jù)。
----------------------------------------------------
函數(shù)
魯班英雄具有“河豚手雷”這個技能,就像炒菜一樣,油、鹽、菜、蛋...出鍋!這樣一個順序就完成了一道美食,魯班也是用一個順序完成了這個技能。左閃、右躲...殺!
這就是一個函數(shù)。
一個變量定義了一個英雄的角色性質,一個函數(shù)定義了一個英雄的大招使用過程!所以C語言的面向過程很好理解。
這個魯班我們就可以叫做一個對象!他的身高、體重等這些變量我們稱之為“屬性”或者“狀態(tài)”,他具有的大招(能干什么)我們稱之為“行為”。
就像魯班七號,這個英雄有姓名、性別、身高、體重等這些“數(shù)量”,也就是變量=屬性=狀態(tài);他可以吃飯、睡覺、打怪,這些行為=函數(shù)。所以,我們就叫C語言中的變量為“屬性”或“狀態(tài)”,C語言中的函數(shù)稱為“行為”。
------------------------------------------------------
從結構到類
在C語言的結構體定義中,我們只是把變量放到了結構體中,而C++的類就是對C語言的結構體進行了擴展,C++的結構體可以包含函數(shù)!
舉個栗子:
struct hero
{
//屬性
   unsigned char name[10];
    int height;
    float weight;

//行為
    void eat()
{吃肉!}       //僅做說明
void sleep()
{站著睡!}
void KillMonsters()
{使用河豚手雷打怪!}
}; //分號
struct hero LuBan; //定義“LuBan”變量

調(diào)用:
void main()
{
LuBan.height=150;
LuBan.weight=50;
LuBan.KillMonsters();
}
“英雄”這個結構體的成員,與C語言不同,我們既有變量也有函數(shù),變量和函數(shù)都屬于該結構體,變量叫成員變量,函數(shù)叫成員函數(shù)。C語言的結構智能描述一個對象的屬性,不能描述一個對象的行為。
在面向對象的程序設計中,對象具有屬性(狀態(tài))和行為,屬性保存在成員變量中,行為通過成員方法(函數(shù))來實現(xiàn)。成員方法又是什么?
其實方法和函數(shù)可以理解為一回事。只是在C++中“函數(shù)”被稱之為“方法”。
-----------------------------------------------------
C++類的定義
前面看明白了,這個地方就不多說話!
將結構體定義中的關鍵字struct換成class,就得到了C++中類的定義。
class Hero    //類名習慣首字母大寫
{
//屬性
   unsigned char name[10];
    int height;
    float weight;

//行為
    void eat()
{吃肉!}       //僅做說明
void sleep()
{站著睡!}
void KillMonsters()
{使用河豚手雷打怪!}
}; //分號
用類定義的就叫對象。
Hero LuBan; //定義了一個Hero類的對象LuBan

2017年12月29日13:07:24


【C++】筆記系列均為原創(chuàng),轉載請注明轉自微號:Lightspeed-Tech  或  AutoCode
  更多精彩資料,請關注!








歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 80日本xxxxxxxxx96 国产成人在线免费视频 | 成人一区二区三区 | 激情综合网站 | 日本久久久久久久久 | 丝袜美腿亚洲综合 | 国产做爰免费观看视频 | 久久国产综合 | 欧美日韩中文在线 | 免费在线黄色网址 | 国产黄色在线 | 欧美中文字幕 | 日韩av在线不卡 | 国产精品二区一区二区aⅴ污介绍 | 亚洲视频在线看 | 亚洲视频免费 | 日韩成人一区 | 久久精品一区二区三区四区五区 | 免费一级黄色 | 欧美国产在线视频 | 国产一区二区三区四区 | 国产蜜臀av | 网站毛片| 在线少妇 | 国产一区二区福利 | 免费观看一区二区 | 日本一本视频 | wwww黄色| 日韩专区在线观看 | 国产精品无| 国产亚洲久一区二区 | 日本中文字幕在线 | 国产视频在线看 | 日本精品国产 | 伊人综合影院 | 亚洲国产精品一区二区三区 | a一级黄色片 | 国产精品久久久久永久免费看 | 女子spa高潮呻吟抽搐 | 亚洲另类色综合网站 | 综合色婷婷一区二区亚洲欧美国产 | 色综合久久久久 |