Effective C++ 第十九條 Treat class design as type design.

設(shè)計(jì) class 猶如 設(shè)計(jì) type
我們?cè)O(shè)計(jì)一個(gè) class 就如同設(shè)計(jì)一個(gè) C++ 內(nèi)置類型一樣,是為一個(gè)新 type,當(dāng)我們?cè)O(shè)計(jì)新 type 的時(shí)候需要考慮以下內(nèi)容:
新 type 的對(duì)象應(yīng)當(dāng)如何被創(chuàng)建和銷毀 ?
對(duì)象的初始化和對(duì)象的賦值該有什么樣子的區(qū)別 ?
新 type 的對(duì)象如果被 passed by value 意味著什么?
什么是新 type 的 “合法值” ?
你的新 type 需要配合某個(gè)繼承圖系(Inheritance graph)嗎?
你的新 type 額需要什么樣的轉(zhuǎn)換 ?
什么樣的操作符和函數(shù)對(duì)此新 type 而言是合理的?
什么樣的標(biāo)準(zhǔn)函數(shù)應(yīng)該被駁回?
誰該取用新 type 的成員?
什么是新的 type 的 “未聲明接口” ?
你的新 type 有多么一般化?
你真的需要一個(gè)新 type 嗎?
這一些列內(nèi)容會(huì)在本合集 Effective C++ 讀后總結(jié)的 “第二三單元總結(jié)” 中所體現(xiàn)。
標(biāo)簽: