【发布时间】:2017-01-11 10:25:22
【问题描述】:
我一直在学习 C++,但我无法理解成员函数/方法返回对象的方式。我正在关注“在 21 天内自学 C++”一书。
所以,我了解类和对象,只是不太了解返回对象。我将提供一个示例(目前正在学习运算符重载)。
const Counter& Counter::operator++()
{
++itsVal;
return *this;
}
我只是对返回类型感到很困惑。这个方法说它应该返回一个对计数器对象的引用,但是当对象被取消引用时
return *this;
我们不只是返回一个 Counter 类的对象吗?为什么函数头说我们正在返回对计数器对象的引用?为什么方法头不直接说返回类型是 Counter 类型的对象?这就是我感到困惑的地方:\
我的想法是,由于引用基本上是某事物的别名,因此返回取消引用的指针就像返回对象别名一样,因为对象具有帮助我们识别它们的名称。我真的不知道,我希望这里有人能给我解释一下。
【问题讨论】:
-
返回“类Couter的对象”将创建副本(第二个实例),这种编程方式的主要思想是对同一对象实例使用点运算符。对不起我的英语,无法解释更多。
-
同意@Sam Varshavchik ,多点运算符技术是先进的(这种符号是其中的一部分)。通过价值/参考示例学习基础知识。
-
你确定有
const吗?这是非常规且不切实际的,与内置前缀++不同。 -
是的,我有这本书的 PDF 版本,并复制了函数定义本身。确实,那里有一个“常量”
标签: c++ return return-type