日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

《C++编程风格(修订版)》——2.5 动态内存的一致性

發布時間:2024/9/21 c/c++ 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《C++编程风格(修订版)》——2.5 动态内存的一致性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節書摘來自異步社區出版社《C++編程風格(修訂版)》一書中的第2章,第2.5節,作者:【美】Tom Cargill,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。

2.5 動態內存的一致性

C++編程風格(修訂版)
在程序清單 2.2 的 string 類中仍然存在著一些問題和不一致的地方。其中,在動態內存管理 上的不一致性與我們在前面所看到的不一致性是一樣的,都是嚴重的問題。對于所有動態分配的 內存,我們都需要回答兩個問題:首先,動態內存是不是足夠大以容納將要存儲的信息?其次, 是不是所有的動態內存都是可回收的?

在默認構造函數中分配的字符數組肯定可以容納空字符串:

這個構造函數所基于的假設是:在創建對象時將會為字符串分配內存,并且這個內存足以 容納在對象生存期內需要保存的任意字符串。成員函數 assign() 與這個假設也是一致的:

在 assign() 中調用 strcpy() 對參數字符串進行拷貝時,并沒有考慮到目標字符數組的長度或 者大小。編寫客戶代碼的程序員必須保證——在創建對象時,無論調用的是哪個構造函數——在 構造函數中所創建的數組必須能夠容納在 assign() 中復制的任意字符串。

然而,在成員函數 concat() 中采用了一種不同的方法:在創建每個字符串時,總是動態地決 定所需數組的精確大小。函數 concat() 忽略了在創建 string 對象時已經分配好的字符數組,即使 這個已分配的數組是足夠大的:

在 assign() 和 concat() 這兩個函數的表現行為上存在著不一致性。它們的區別在于,在為 string

對象設置新值時,是否會動態分配字符數組:assing() 永遠不會分配,而 concat() 則總是會分配。

接口一致性
上面哪種控制數組大小的方法是更好的?和許多軟件決策一樣,沒有哪種方法是絕對的“正 確”或者絕對的“錯誤”。這兩種方法都有各自的優點。保持在構造函數中分配的數組不變(assign() 中的做法)是一種高效的方法,因為在后續的操作中就無需再調用內存分配函數。對每個字符串 值都動態地決定數組的大小(concat() 中的做法)則是一種更安全的方法,因為這種方法杜絕了 數組的“越界”行為。

這兩種方法都可以用在類中,但我們只能使用其中的一種,以保持類一致性,而不應該將 這兩種方法混合使用。否則,在使用這個類時,程序員將不得不去了解在接口中不同操作之間的 不同約定。如果一個程序員只使用過 concat(),并且知道了數組的大小是動態增長的,那么他就 會假定 assign() 也是同樣的行為,因此,當在 assign() 中發生數組內存的越界問題時,他所感到 的沮喪應該是可以預見的。

類的接口定義應該是一致的——避免產生困惑。

總結

以上是生活随笔為你收集整理的《C++编程风格(修订版)》——2.5 动态内存的一致性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日啪| 欧美日本色 | 国产日韩欧美视频在线 | 久久狠| 久久第一页 | 成人免费黄色网址 | 国产美女特级嫩嫩嫩bbb | 无码人妻丰满熟妇啪啪网站 | 黄色片久久久 | 久久精品国产99国产 | 中国女人内谢69xxxxⅹ视频 | 日韩精品一区二区三区丰满 | 特级少妇 | 男人激烈吮乳吃奶爽文 | 午夜日韩精品 | 日韩成人精品视频 | 麻豆免费在线观看 | 丰满人妻熟妇乱偷人无码 | 国产区一区 | 激情文学亚洲色图 | 美国av片| 精品少妇人妻av一区二区三区 | 99热亚洲精品| 色综合久久久无码中文字幕波多 | 免费看的黄色小视频 | 国产精品国产三级国产aⅴ 欧美bbbbbbbbbbbb18av | 日本黄区免费视频观看 | 亚洲高清在线播放 | 黑丝久久| 永久免费看片在线播放 | 乱短篇艳辣500篇h文最新章节 | 天堂中文在线观看视频 | 亚洲青青草原 | 大胸美女被爆操 | 一级片免费 | 日韩欧美一区二区三区视频 | 白石茉莉奈中文字幕在 | 九九热国产 | av性色 | 亚洲男人的天堂在线观看 | 国产人妻精品午夜福利免费 | 怡春院在线视频 | 日本妈妈3 | 性自由色xxxx免费视频 | 亚洲成人av综合 | 美女张开腿流出白浆 | 国产精品国产a级 | 日韩精品卡通动漫网站 | 伊人久久大香线蕉综合网站 | 色呦呦网| 天天干天天操天天碰 | 色综合久久天天综合网 | 欧美日韩a| 免费在线播放 | 自拍1页 | 在线五月天 | 欧美成人手机视频 | 国产麻豆影视 | 可以看的黄色网 | 91天堂素人 | 欧美在线一区二区三区四区 | 四虎永久网址 | 成人国产免费观看 | 午夜影院日本 | 操模特 | 五月天婷婷爱 | 11孩岁女毛片 | 亚洲www. | 日本精品网 | 黄色av地址 | 成人做爰www看视频软件 | 制服丝袜在线播放 | 黄色一级免费看 | 亚洲欧美高清在线 | www.日韩av.com| 四季av日韩精品一区 | 婷婷国产成人精品视频 | 日本午夜网 | 最新超碰 | 欧美成人a∨高清免费观看 国产精品999视频 | 91成人看| 国产高潮又爽又无遮挡又免费 | 99蜜桃臀久久久欧美精品网站 | 末发成年娇小性xxxxx | 久久99精品久久久久 | 黄色片网站在线 | 亚洲欧美色图在线 | 久久久无码人妻精品无码 | 美女的奶胸大爽爽大片 | 天天色一色 | 欧美性生活精品 | 不卡二区 | 国产成人无码网站 | 日本欧美国产一区二区三区 | 爱草av | www在线 | 中文字幕日韩在线观看 | 中文字幕你懂的 | 天天插天天操天天干 |