新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話 > C語(yǔ)言的一些高級(jí)議題

        C語(yǔ)言的一些高級(jí)議題

        作者:areak 時(shí)間:2014-10-23 來(lái)源:電子產(chǎn)品世界 收藏

          之面向?qū)ο?/strong>

        本文引用地址:http://www.104case.com/article/264327.htm

          我們經(jīng)常說(shuō)是面向過(guò)程的語(yǔ)言,而C++、JAVA是面向?qū)ο蟮模敲嫦驅(qū)ο蟛⒉皇荂++、JAVA的專利,里面也有面向?qū)ο蟮乃枷耄热缥覀兘?jīng)常使用的結(jié)構(gòu)體。

          struct student

          {

          char name[256];

          int age;

          };

          學(xué)生的姓名和年齡,就是學(xué)生自身的屬性,和C++里面的成員變量是一樣的概念,但是這個(gè)結(jié)構(gòu)體里面并沒有體現(xiàn)出方法的使用。在面向?qū)ο笾杏蟹庋b的概念,結(jié)構(gòu)體中的成員我們不應(yīng)該直接訪問(wèn),而應(yīng)該通過(guò)方法訪問(wèn),我們可以添加訪問(wèn)結(jié)構(gòu)體成員變量的方法。

          char* get_name(student * self);//獲取學(xué)生姓名

          void set_name(student * self, char* name);//設(shè)置學(xué)生姓名

          char* get_name(student * self)

          {

          return self->name;

          }

          void set_name(student * self, char* name)

          {

          strncpy(self->name, name, sizeof(self->name));

          }

          此處省略age的設(shè)置和獲取功能。

          現(xiàn)在類的數(shù)據(jù)、方法都有了,下一步就是要使用類創(chuàng)建、初始化、析構(gòu)、銷毀對(duì)象,在C++中有new、delete操作符負(fù)責(zé)創(chuàng)建和銷毀,使用C語(yǔ)言實(shí)現(xiàn)如下:

          student * student _create(void);// 對(duì)象創(chuàng)建和初始化

          void student _destroy(student * self);// 對(duì)象析構(gòu)和銷毀

          student * student _create(void)

          {

          student * self = malloc(sizeof(student));

          memset(self->name, 0x00, sizeof(self->name));

          self->age = 0;

          return self;

          }

          void student _destroy(student * self)

          {

          free(self);

          }

          至此,我們就可以采用面向?qū)ο蟮姆绞絹?lái)編寫代碼了。

          student * student1= NULL;

          student1 = student _create();//創(chuàng)建對(duì)象

          set_name(student1, "mary");//初始化student1的名字為mary

          set_age(student1, 20); //初始化student1的年齡為20

          get_name(student1);//獲取student1的姓名

          student _destroy(student1);//銷毀對(duì)象

          當(dāng)然C語(yǔ)言還有很多強(qiáng)大的功能,比如可變參數(shù)的設(shè)計(jì),無(wú)一例外都要借助于來(lái)實(shí)現(xiàn)。以上內(nèi)容參考于網(wǎng)絡(luò)資源,如有錯(cuò)誤之處,懇請(qǐng)指正。

        c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: C語(yǔ)言 指針 函數(shù)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 游戏| 桃园县| 鄂温| 张北县| 盱眙县| 剑阁县| 罗平县| 玉屏| 新河县| 彰化县| 平南县| 淮滨县| 右玉县| 城固县| 辽阳县| 都江堰市| 嘉鱼县| 图木舒克市| 乐昌市| 盐津县| 长子县| 法库县| 南安市| 剑河县| 喀什市| 银川市| 稷山县| 平陆县| 太仆寺旗| 福安市| 潜江市| 利辛县| 辉县市| 大庆市| 进贤县| 神池县| 榕江县| 即墨市| 东乌| 垦利县| 夏河县|