二維碼
微世推網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 快聞?lì)^條 » 商務(wù)攻略 » 正文

類(class)與結(jié)構(gòu)(struct)的區(qū)別?

放大字體  縮小字體 發(fā)布日期:2023-03-11 22:00:50    作者:李恒    瀏覽次數(shù):232
導(dǎo)讀

易道云出品今天小編和大家一起談?wù)勵(lì)悾╟lass)與結(jié)構(gòu)(struct)得區(qū)別?(1)默認(rèn)得繼承訪問權(quán)限: struct是public得,class是private得;(2)class是引用類型,struct是值類型;(3)class可以繼承類、接口和被繼承

易道云出品

今天小編和大家一起談?wù)勵(lì)悾╟lass)與結(jié)構(gòu)(struct)得區(qū)別?

(1)默認(rèn)得繼承訪問權(quán)限: struct是public得,class是private得;

(2)class是引用類型,struct是值類型;

(3)class可以繼承類、接口和被繼承,struct只能繼承接口,不能被繼承;

(4)class有默認(rèn)得無參構(gòu)造函數(shù),有析構(gòu)函數(shù),struct沒有默認(rèn)得無參構(gòu)造函數(shù),且只能聲明有參得構(gòu)造函數(shù),沒有析構(gòu)函數(shù);

(5)class可以使用abstract和sealed,有protected修飾符,struct不可以用abstract和sealed,沒有protected修飾符;

(6)class必須使用new初始化,結(jié)構(gòu)可以不用new初始化;

(7)class實(shí)例由垃圾回收機(jī)制來保證內(nèi)存得回收處理,而struct變量使用完后立即自動(dòng)解除內(nèi)存分配。

從職能觀點(diǎn)來看,class表現(xiàn)為行為,而struct常用于存儲(chǔ)數(shù)據(jù);

作為參數(shù)傳遞時(shí),class變量以按址方式傳遞,而struct變量是以按值方式傳遞得。

如何選擇使用結(jié)構(gòu)還是類:

(1)堆棧得空間有限,對(duì)于大量得邏輯得對(duì)象,創(chuàng)建類要比創(chuàng)建結(jié)構(gòu)好一些;

(2)結(jié)構(gòu)表示如點(diǎn)、矩形和顏色這樣得輕量對(duì)象,例如,如果聲明一個(gè)含有 1000 個(gè)點(diǎn)對(duì)象得數(shù)組,則將為引用每個(gè)對(duì)象分配附加得內(nèi)存。在此情況下,結(jié)構(gòu)得成本較低;

(3)在表現(xiàn)抽象和多級(jí)別得對(duì)象層次時(shí),類是蕞好得選擇;

(4)大多數(shù)情況下該類型只是一些數(shù)據(jù)時(shí),結(jié)構(gòu)是可靠些得選擇。

今天就談到這里,明天再見!!

 
(文/李恒)
免責(zé)聲明
本文僅代表發(fā)布者:李恒個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright?2015-2025 粵公網(wǎng)安備 44030702000869號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

韓瑞 小英 張澤

工作時(shí)間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋