最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++類和對(duì)象到底是什么

 更新時(shí)間:2021年09月25日 16:36:22   作者:編程幫  
C++ 是一門(mén)面向?qū)ο蟮木幊陶Z(yǔ)言,理解 C++,首先要理解類(Class)和對(duì)象(Object)這兩個(gè)概念。下面和小編一起來(lái)學(xué)習(xí)吧

1、C++ 中的類

C++ 中的類(Class)可以看做C語(yǔ)言中結(jié)構(gòu)體(Struct)的升級(jí)版。結(jié)構(gòu)體是一種構(gòu)造類型,可以包含若干成員變量,每個(gè)成員變量的類型可以不同;可以通過(guò)結(jié)構(gòu)體來(lái)定義結(jié)構(gòu)體變量,每個(gè)變量擁有相同的性質(zhì)。

例如:

#include <stdio.h>
//定義結(jié)構(gòu)體 Student
struct Student{
    //結(jié)構(gòu)體包含的成員變量
    char *name;
    int age;
    float score;
};
//顯示結(jié)構(gòu)體的成員變量
void display(struct Student stu){
    printf("%s的年齡是 %d,成績(jī)是 %f\n", stu.name, stu.age, stu.score);
}
int main(){
    struct Student stu1;
    //為結(jié)構(gòu)體的成員變量賦值
    stu1.name = "小明";
    stu1.age = 15;
    stu1.score = 92.5;
    //調(diào)用函數(shù)
    display(stu1);
    return 0;
}

運(yùn)行結(jié)果:

小明的年齡是 15,成績(jī)是 92.500000

C++ 中的類也是一種構(gòu)造類型,但是進(jìn)行了一些擴(kuò)展,類的成員不但可以是變量,還可以是函數(shù);通過(guò)類定義出來(lái)的變量也有特定的稱呼,叫做“對(duì)象”。

例如:

#include <stdio.h>
//通過(guò)class關(guān)鍵字類定義類
class Student{
public:
    //類包含的變量
    char *name;
    int age;
    float score;
    //類包含的函數(shù)
    void say(){
        printf("%s的年齡是 %d,成績(jī)是 %f\n", name, age, score);
    }
};
int main(){
    //通過(guò)類來(lái)定義變量,即創(chuàng)建對(duì)象
    class Student stu1;  //也可以省略關(guān)鍵字class
    //為類的成員變量賦值
    stu1.name = "小明";
    stu1.age = 15;
    stu1.score = 92.5f;
    //調(diào)用類的成員函數(shù)
    stu1.say();
    return 0;
}

運(yùn)行結(jié)果與上例相同。

對(duì)于熟悉 C++ 的讀者,這段代碼并不規(guī)范,請(qǐng)忽略這一細(xì)節(jié),本節(jié)的重點(diǎn)是引入類和對(duì)象的概念。這套 C++ 教程是在C的基礎(chǔ)上編寫(xiě)的,我并不希望一開(kāi)始就提出過(guò)多的 C++ 概念,讓讀者吃不消,我希望讀者從C逐漸過(guò)渡到 C++,從第二章開(kāi)始編寫(xiě)規(guī)范的 C++ 代碼。也就是說(shuō),包括本節(jié)在內(nèi),第一章有很多不規(guī)范的 C++ 代碼,再次請(qǐng)熟悉 C++ 的讀者忽略。

class public 都是 C++ 中的關(guān)鍵字,初學(xué)者請(qǐng)先忽略 public(后續(xù)會(huì)深入講解),把注意力集中在 class 上。

C語(yǔ)言中的 struct 只能包含變量,而 C++ 中的 class 除了可以包含變量,還可以包含函數(shù)。display() 是用來(lái)處理成員變量的函數(shù),在C語(yǔ)言中,我們將它放在了 struct Student 外面,它和成員變量是分離的;而在 C++ 中,我們將它放在了 class Student 內(nèi)部,使它和成員變量聚集在一起,看起來(lái)更像一個(gè)整體。

結(jié)構(gòu)體和類都可以看做一種由用戶自己定義的復(fù)雜數(shù)據(jù)類型,在C語(yǔ)言中可以通過(guò)結(jié)構(gòu)體名來(lái)定義變量,在 C++ 中可以通過(guò)類名來(lái)定義變量。不同的是,通過(guò)結(jié)構(gòu)體定義出來(lái)的變量還是叫變量,而通過(guò)類定義出來(lái)的變量有了新的名稱,叫做對(duì)象(Object)。

在第二段代碼中,我們先通過(guò) class 關(guān)鍵字定義了一個(gè)類 Student,然后又通過(guò) Student 類創(chuàng)建了一個(gè)對(duì)象 stu1。變量和函數(shù)都是類的成員,創(chuàng)建對(duì)象后就可以通過(guò)點(diǎn)號(hào).來(lái)使用它們。

可以將類比喻成圖紙,對(duì)象比喻成零件,圖紙說(shuō)明了零件的參數(shù)(成員變量)及其承擔(dān)的任務(wù)(成員函數(shù));一張圖紙可以生產(chǎn)出多個(gè)具有相同性質(zhì)的零件,不同圖紙可以生產(chǎn)不同類型的零件。

類只是一張圖紙,起到說(shuō)明的作用,不占用內(nèi)存空間;對(duì)象才是具體的零件,要有地方來(lái)存放,才會(huì)占用內(nèi)存空間。

在 C++ 中,通過(guò)類名就可以創(chuàng)建對(duì)象,即將圖紙生產(chǎn)成零件,這個(gè)過(guò)程叫做類的實(shí)例化,因此也稱對(duì)象是類的一個(gè)實(shí)例(Instance)。

有些資料也將類的成員變量稱為屬性(Property),將類的成員函數(shù)稱為方法(Method)。

2、面向?qū)ο缶幊蹋∣bject Oriented Programming,OOP)

類是一個(gè)通用的概念,C++、Java、C#、PHP 等很多編程語(yǔ)言中都支持類,都可以通過(guò)類創(chuàng)建對(duì)象??梢詫㈩惪醋鍪墙Y(jié)構(gòu)體的升級(jí)版,C語(yǔ)言的晚輩們看到了C語(yǔ)言的不足,嘗試加以改善,繼承了結(jié)構(gòu)體的思想,并進(jìn)行了升級(jí),讓程序員在開(kāi)發(fā)或擴(kuò)展大中型項(xiàng)目時(shí)更加容易。

因?yàn)?C++ 、JavaC# 、PHP 等語(yǔ)言都支持類和對(duì)象,所以使用這些語(yǔ)言編寫(xiě)程序也被稱為面向?qū)ο缶幊蹋@些語(yǔ)言也被稱為面向?qū)ο蟮木幊陶Z(yǔ)言。C語(yǔ)言因?yàn)椴恢С诸惡蛯?duì)象的概念,被稱為面向過(guò)程的編程語(yǔ)言。

在C語(yǔ)言中,我們會(huì)把重復(fù)使用或具有某項(xiàng)功能的代碼封裝成一個(gè)函數(shù),將擁有相關(guān)功能的多個(gè)函數(shù)放在一個(gè)源文件,再提供一個(gè)對(duì)應(yīng)的頭文件,這就是一個(gè)模塊。使用模塊時(shí),引入對(duì)應(yīng)的頭文件就可以。

而在 C++ 中,多了一層封裝,就是類(Class)。類由一組相關(guān)聯(lián)的函數(shù)、變量組成,你可以將一個(gè)類或多個(gè)類放在一個(gè)源文件,使用時(shí)引入對(duì)應(yīng)的類就可以。下面是C和C++項(xiàng)目組織方式的對(duì)比:

不要小看類(Class)這一層封裝,它有很多特性,極大地方便了中大型程序的開(kāi)發(fā),它讓 C++ 成為面向?qū)ο蟮恼Z(yǔ)言。

面向?qū)ο缶幊淘诖a執(zhí)行效率上絕對(duì)沒(méi)有任何優(yōu)勢(shì),它的主要目的是方便程序員組織和管理代碼,快速梳理編程思路,帶來(lái)編程思想上的革新。

面向?qū)ο缶幊淌轻槍?duì)開(kāi)發(fā)中大規(guī)模的程序而提出來(lái)的,目的是提高軟件開(kāi)發(fā)的效率。不要把面向?qū)ο蠛兔嫦蜻^(guò)程對(duì)立起來(lái),面向?qū)ο蠛兔嫦蜻^(guò)程不是矛盾的,而是各有用途、互為補(bǔ)充的。如果你希望開(kāi)發(fā)一個(gè)貪吃蛇游戲,類和對(duì)象或許是多余的,幾個(gè)函數(shù)就可以搞定;但如果開(kāi)發(fā)一款大型游戲,那你絕對(duì)離不開(kāi)面向?qū)ο蟆?/p>

到此這篇關(guān)于C++類和對(duì)象到底是什么的文章就介紹到這了,更多相關(guān)C++類和對(duì)象內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++之vector容器的swap方法解讀

    C++之vector容器的swap方法解讀

    這篇文章主要介紹了C++之vector容器的swap方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++中char*轉(zhuǎn)換為L(zhǎng)PCWSTR的解決方案

    C++中char*轉(zhuǎn)換為L(zhǎng)PCWSTR的解決方案

    最近在學(xué)習(xí)C++,遇到了一個(gè)char*轉(zhuǎn)換為L(zhǎng)PCWSTR的問(wèn)題,通過(guò)查找資料終于解決了,所以下面這篇文章主要介紹了C++中char*轉(zhuǎn)LPCWSTR的解決方案,文中通過(guò)詳細(xì)的示例代碼介紹的很詳細(xì),有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • C++實(shí)現(xiàn)修改函數(shù)代碼HOOK的封裝方法

    C++實(shí)現(xiàn)修改函數(shù)代碼HOOK的封裝方法

    這篇文章主要介紹了C++實(shí)現(xiàn)修改函數(shù)代碼HOOK的封裝方法,有助于深入了解C++的HOOK原理,需要的朋友可以參考下
    2014-10-10
  • 二叉樹(shù)入門(mén)和刷題詳解

    二叉樹(shù)入門(mén)和刷題詳解

    這篇文章主要介紹了二叉樹(shù)入門(mén)和刷題詳解的相關(guān)資料,需要的朋友可以參考下
    2023-07-07
  • C/C++中帶空格字符串的輸入講解

    C/C++中帶空格字符串的輸入講解

    這篇文章主要給大家介紹了關(guān)于如何解決C++中帶空格字符串的輸入問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2021-09-09
  • 深入分析C++模板特化與偏特化

    深入分析C++模板特化與偏特化

    這篇文章主要介紹了C++模板特化與偏特化的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-08-08
  • 詳解C語(yǔ)言中的memset()函數(shù)

    詳解C語(yǔ)言中的memset()函數(shù)

    這篇文章主要介紹了C語(yǔ)言中的memset()函數(shù),包括其與memcpy()函數(shù)的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • C語(yǔ)言軟件iic虛擬總線中間層設(shè)計(jì)詳解

    C語(yǔ)言軟件iic虛擬總線中間層設(shè)計(jì)詳解

    這篇文章主要為大家介紹了C語(yǔ)言軟件iic虛擬總線中間層設(shè)計(jì)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • C語(yǔ)言實(shí)現(xiàn)linux網(wǎng)卡連接檢測(cè)的方法

    C語(yǔ)言實(shí)現(xiàn)linux網(wǎng)卡連接檢測(cè)的方法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)linux網(wǎng)卡連接檢測(cè)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • C++同步線程實(shí)現(xiàn)示例詳解

    C++同步線程實(shí)現(xiàn)示例詳解

    這篇文章主要介紹了C++同步線程實(shí)現(xiàn)示例,線程同步是指同一進(jìn)程中的多個(gè)線程互相協(xié)調(diào)工做從而達(dá)到一致性。之因此須要線程同步,是由于多個(gè)線程同時(shí)對(duì)一個(gè)數(shù)據(jù)對(duì)象進(jìn)行修改操做時(shí),可能會(huì)對(duì)數(shù)據(jù)形成破壞
    2022-11-11

最新評(píng)論

河源市| 吉林省| 宁河县| 瓦房店市| 简阳市| 五华县| 安宁市| 兰考县| 阜康市| 保靖县| 柏乡县| 上栗县| 从江县| 和硕县| 苏尼特左旗| 蓬安县| 疏附县| 元氏县| 沧源| 宝应县| 汤阴县| 百色市| 安顺市| 定西市| 拜城县| 山东| 格尔木市| 修文县| 甘南县| 邛崃市| 古丈县| 临猗县| 呼图壁县| 兴和县| 谢通门县| 荥经县| 寻乌县| 崇文区| 苍溪县| 吉木乃县| 伊金霍洛旗|