<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

          C語言的一些高級議題

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

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

          本文引用地址:http://www.ex-cimer.com/article/264327.htm

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

            struct student

            {

            char name[256];

            int age;

            };

            學(xué)生的姓名和年齡,就是學(xué)生自身的屬性,和C++里面的成員變量是一樣的概念,但是這個結(jié)構(gòu)體里面并沒有體現(xiàn)出方法的使用。在面向?qū)ο笾杏蟹庋b的概念,結(jié)構(gòu)體中的成員我們不應(yīng)該直接訪問,而應(yīng)該通過方法訪問,我們可以添加訪問結(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)、銷毀對象,在C++中有new、delete操作符負(fù)責(zé)創(chuàng)建和銷毀,使用C語言實現(xiàn)如下:

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

            void student _destroy(student * self);// 對象析構(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ū)ο蟮姆绞絹砭帉懘a了。

            student * student1= NULL;

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

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

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

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

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

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

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



          上一頁 1 2 下一頁

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

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();