分享
 
 
 

C++ Coding Standards:构造,析构和拷贝

王朝c/c++·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

By Herb Sutter, Andrei Alexandrescu 著

树人 译构造,析构和拷贝

47. 以相同的顺序初始化成员变量。

根据你的编译器:成员变量总是以它们在类定义中被声明的顺序来初始化的;它们在构造函数初始化列表中列出的顺序会被忽略。确保构造函数代码不会胡乱地指定一个不同的顺序。

48. 优先使用初始化,而不是在构造函数中赋值。

一次设定,处处使用:在构造函数中,用初始化替换赋值来设定成员变量,这样可以防止不必要的运行时工作,也能使键入的字符保持一样的数量,避免冗余。

49. 避免在构造函数和析构函数中调用虚拟函数。

Virtual functions only "virtually" always behave virtually虚拟函数只有在具有虚拟化行为时才是虚拟的:在构造和析构函数中,它们却不是的。甚至,在一个构造或析构函数中,任何对一个未实现的纯虚函数的直接或间接调用都会导致未定义行为。如果你的设计想让虚拟函数从一个基类的构造或析构函数分派到一个派生类中去,你就需要其它的技术了,例如后置构造函数。

50. 让基类的析构函数public和virtual,或者它protected和nonvirtual。

释放还是不释放,这确是一个问题:如果要允许从一个指向基类Base的指针来释放内存,那Base的析构函数就必须是public和virtual的。否则,它就应该是protected和nonvirtual的。

51. 析构,释放单元,和互换操作决不能失败。

它们所尝试的每件事情都应该成功:绝不要从析构函数,资源释放函数(例如:operator delete)或交换(swap)函数中报告一个错误。特别地,在使用C++标准库时,其析构函数可能抛出一个异常的类型会被直接了当地禁止掉。

52. 拷贝和摧毁要一致。

你创建的,你也要清除它:如果你定义了拷贝构造函数,拷贝赋值操作符或析构函数中的任意一个,你就可能需要定义其它当中的一个或都定义。

53. 显式地允许或禁止拷贝动作。

有意识地拷贝:有意识地选择是使用编译器生成的拷贝构造函数和赋值操作符,还是编写自己的版本,或者是显式地禁止它们(如果拷贝动作不被允许的话)。

54. 避免切片现象。在基类中考虑用克隆来替换拷贝。

切片的面包是很好;但切片的对象却不怎么样:对象切片现象是自动的,看不见的,而且可能为令人惊讶的中断带来令人惊奇的多态性的设计。在基类中,可以考虑禁止拷贝构造函数和拷贝赋值操作符,如果用户需要完成多态的(完全的,深的)拷贝的话,可以提供一个虚拟的Clone成员函数。

55. 优先使用赋值的规范形式。

你自己的赋值:在实现operator=的时候,优先使用规范形式(nonvirtual)并且提供一个特殊的型构。

56. 只要有意义,就应该提供一个no-fail交换操作(而且要正确)。

swap既是轻量级又是骨干:可以考虑提供一个swap函数来有效和准确无误地交换此对象与另一个的内部数据。这样的函数可以很容易地实现一些惯用法,从“通过平滑地移动对象很容易地实现赋值”到“通过提供一个受保护的委托函数来提供强有力的错误安全(容错)的调用代码”。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有