安徽新华电脑专修学院_安徽电脑培训_安徽电脑培训学校_合肥电脑培训

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > D 2.0 Const/Final/Invariant 概念簡介

D 2.0 Const/Final/Invariant 概念簡介
2010-01-13 21:05:42  作者:  來源:


D 2.0 Const/Final/Invariant 概念簡介
 
D 2.0 Const/Final/Invariant 概念簡介

    D 2.0 specs 里的相關文檔可讀性不佳,因此我總結了一個簡單的 const/final/invariant 概念簡介,更詳細的用法還請參考 D  2.0 specs。
    在2.0中,invariant 和 const 有作存儲類、定義類型和定義成員函數三種用途,深刻地改變了D程序編寫的方式,跟C++一樣,使用const/final/invariant 需要更仔細地設計和編碼,回報是提供了更好的類型安全性并能讓編譯器產生出更高效的代碼。這些 constness 特性,雖然看起來語法很復雜,但也比 C++ 的前后置 const 要容易理解記憶得多了,因為它不像 C++ 中的 const  定義那樣存在很大的隨意性。


1. invariant
1.1    invariant 作存儲類(storage class)
    存儲類是一個指定數據存儲地點或方式的標志,static 就是一種存儲類,用來要求編譯器把數據存儲到程序的靜態存儲區中。
    invariant 存儲類定義一個真正的常量,這個常量決不能更改,甚至有可能是放在只讀存儲器中。因此,invariant 存儲類定義的常量沒有地址,編譯器也會禁止任何的取地址行為。
    invariant 定義的常量只能使用初始化語法賦予初始值,如果 invariant 為引用/指針類型,那么所引用的數據也同樣是 invariant 的。

1.2 invariant 作類型
    你可以用 invariant(TYPE) 的方法定義一個含有 invariant 屬性的新類型,括號中的 TYPE 表示整個類型中適用于 invariant 的部分,比如: invariant(int)* ptr; 這行代碼申明了一個指針變量 ptr,ptr本身是變量,但它所指向的類型 (int)是不可變的,因此 *ptr = 3; 這樣的代碼是一個語法錯誤。

1.3 invariant 成員函數
    invariant 可以用于修飾類和結構的成員函數,在 invariant 成員函數中傳入的 this 指針/引用及其關聯的任何東西都保證為 invariant。invariant 成員函數只能訪問該類或結構的invariant 成員變量或其他 invariant 成員函數。
   

2. const
2.1 const 存儲類
    const 存儲類類似于 invariant 存儲類,不同的是 const 定義的指針/引用所指向的數據可以是變量,因此它們可能會在其他地方被修改。

2.2 const 作類型
    與 invariant 作類型類似,const(TYPE) 定義一個含有 const 屬性的新類型。不同點是當 const(TYPE) 作為指針/引用類型時,其所指向的類型可以是變量,如:int a; const(int)* ptr = &a; ptr 本身是變量,ptr 也可以指向變量,但是通過 ptr 只能只讀地訪問 a。


2.3 const 成員函數
    const 修飾的成員函數類似C++中函數聲明后置的 const,表示他們不允許更改 "this" 指針/引用指向的對象數據。請注意這里的修辭,“不允許”意味著可以像C/C++一樣用轉型騙過編譯器,不過欺騙編譯器恐怕沒什么好結果。與 invariant 成員函數類似,const 成員函數可以訪問 invariant 和 const 成員變量和函數。

3. final 存儲類

    final 存儲類定義一個數據的訪問模式為只讀,與 invariant 不同的是,編譯器為 final 定義的對象在內存中分配了空間。換句話來說,final 對象跟真正的變量沒什么區別,只是由編譯器來強制實施對此對象的只讀訪問。final 定義的對象可以用初始化語法初始化或在構造函數中初始化(加入 final 對象是類成員的話,當然,模塊的this()也支持)。
    在成員函數方面,很早以前 final 已經用來表示禁止 override 了,final 也不能作為類型使用。

更多信息請登陸http://61.191.27.74:802/ 最后,歡迎加入http://61.191.27.74:802/的會員


安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 维启科技-创造科技的无限可能 | 上海维启信息技术有限公司 建筑仿真 BIM 虚拟现实 VR AR 顶岗实习 建筑智能模型 | 全玻璃视镜人孔-卡箍组件-常压单臂梁人孔-温州华强流体设备有限公司 | 可燃气体报警器-有毒有害气体检测仪-气体检测分析系统-宁波市高品科技有限公司 | 江苏工业双氧水_工业亚硝酸钠的作用与用途_工业双氧水厂家-江苏连云港嘉一化工厂 | 菏泽博捷电梯有限公司-菏泽博捷电梯有限公司 | 同兴科技-安徽同兴科技发展有限责任公司 | 爬架网@建筑爬架网@冲孔建筑爬架网片@工地冲孔建筑爬架网片@工地冲孔建筑爬架网片厂家@工地冲孔建筑爬架网片生产厂家-安平县诺德金属制品有限公司 | 青岛色粉_色母及改性塑料供应厂家 - 青岛建轩新材料有限公司 | 上海建发物资有限公司 | 暖气片厂家_散热器厂家_力春散热器 | 荆门市彩富机械有限责任公司|精铸件|五金|机械配件 | 潍坊沃林机械设备有限公司-牵引式风送果园打药机,悬挂式风送果园喷雾机,自走式果树喷药机,车载式风送远程喷雾机-潍坊沃林机械设备有限公司-牵引式风送果园打药机,悬挂式风送果园喷雾机,自走式果树喷药机,车载式风送远程喷雾机 潍坊网络推广,临沂360推广,东营360推广,枣庄360推广,潍坊网站建设,潍坊网络公司,潍坊360搜索,潍坊APP开发,潍坊360推广,潍坊360代理,潍坊点睛网络科技有限公司 | 重庆化粪池清淘_管道疏通_高压疏通清洗管道_电话:023-68183336,15723234763 | 江苏工业双氧水_工业亚硝酸钠的作用与用途_工业双氧水厂家-江苏连云港嘉一化工厂 | 助乐邦轮椅,北京轮椅置换,电动轮椅置换,轮椅回收北京,轮椅送货上门服务 | 狠狠穞A片一區二區三區-免费网站在线观看人数更新时间-欧洲尺码日本尺码专线不卡顿,国产大尺度禁片未删减版,baomaav | 做网站_网站建设_专业上海网站制作_网至普网站建设 | 四字成语大全6000个,经典成语大全及解释,1000个50000个成语及解释 - 同鑫成语网 | 新密耐火材料厂家价格-河南郑州荣盛窑炉耐火材料有限公司 | 立式离心泵_不锈钢自吸泵_液下泵_变频无负压供水设备-大东海泵业无锡有限公司 | 京建鹏达_商用无烟烧烤设备多少钱|开店商用自助旋转烧烤炉价格|无烟电烧烤炉批发厂家|无烟烧烤桌定做厂商-京建鹏达烧烤设备网 | 木材粉碎机,木头木材破碎机,大型木材粉碎机多少钱一台-晨红木材粉碎机厂家-巩义市晨红机械厂 | 绿夏技术导航 - 收录精选资源及优质站点网址! | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 监控工程,安防监控公司,北京监控安装,北京安装监控,安装摄像头,北京监控维保,监控施工,北京监控维修,监控弱电工程,监控器安装,监控维护保养,监控工程设计,北京监控设备维修,监控报警安装,北京北方合力科技有限公司 | 松下PLC经销商-松下传感器-放大器-电磁阀-光电开关-金器[东莞均钛]品牌气动元件及工控产品一站式供应商 | 学汽修-汽修培训-郑州万通汽车学校[官网] | 老照片修复,修复老照片,老旧照片翻新-老照片修复网 | 水环式真空泵-旋片式真空泵-上海飞鲁泵业科技有限公司 | 品润财税_广州公司注册_南沙代理记账服务_危化证出口退税外国人工作签证代办 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 邛崃人才网_邛崃招聘网_求职找工作平台 | 首页|广东蒙泰高新纤维股份有限公司|丙纶细旦丝|丙纶异形丝|丙纶FDY网络丝 - 广东蒙泰高新纤维股份有限公司 | 四川杨氏达防水材料有限公司 | 消防栓保温罩,玻璃钢灭火器箱,玻璃钢消防沙箱-潍坊辰阳玻璃钢有限公司 | 郑州编织袋_河南编织袋厂-郑州升达编织袋厂 | 升降机_举升机_液压升降机_化工防爆升降平台_山东华雄机械有限公司 | 浙江桥梁检测车出租_杭州桥检车出租_桥梁检测车出租_桥检车租赁_桥梁检测车租赁-广州众诚设备租赁有限公司 | 合肥环氧地坪-合肥固化地坪施工-安徽地宽建筑装饰工程有限公司 | 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 卷筒电缆_高柔性拖链电缆_聚氨酯电缆生产厂家-玖泰卷筒电缆 |