《21天学通C++(第7版)》——12.7 问与答

本节书摘来自异步社区出版社《21天学通C++(第7版)》一书中的第12章,第12.7节,作者: 【美】Siddhartha Rao, 【德】Nicolai M. Josuttis,更多章节内容可以访问云栖社区“异步社区”公众号查看。

12.7 问与答

21天学通C++(第7版)
问:我编写的类封装了一个动态整型数组,请问我至少应该实现哪些函数和方法?

答:编写这样的类时,必须明确定义下述情形下的行为:通过赋值直接复制对象或通过按值传递给函数间接复制对象。通常,应实现复制构造函数、复制赋值运算符和析构函数。另外,如果想改善这个类在某些情况下的性能,还应实现移动构造函数和移动赋值运算符。

问:假设有一个类对象object,而我希望支持语法cout << object;,请问需要实现哪个运算符?

答:您需要实现一个转换运算符,让类能被解读为std::cout支持的类型。一种解决方案是,像程序清单12.2那样定义运算符char* ()。

**问:自己编写智能指针类时,至少需要实现哪些函数和运算符?
**
答:智能指针必须能够像常规指针那样使用,如pSmartPtr或pSmartPtr->Func()。为此,需要实现运算符和->。要确保它足够智能,还需合理地编写析构函数,以自动释放/归还资源;另外,还需实现复制构造函数和复制赋值运算符,以明确定义复制和赋值的方式(也可将复制构造函数和复制赋值运算符声明为私有的,以禁止复制和赋值)。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值