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

    xiaoxiao2024-10-13  117

    本节书摘来自异步社区出版社《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()。为此,需要实现运算符和->。要确保它足够智能,还需合理地编写析构函数,以自动释放/归还资源;另外,还需实现复制构造函数和复制赋值运算符,以明确定义复制和赋值的方式(也可将复制构造函数和复制赋值运算符声明为私有的,以禁止复制和赋值)。

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

    相关资源:21天学通C (中文第五版)
    最新回复(0)