如何判断类方法是否就地更改了对象(在 Microsoft 文档中)?

问题描述 投票:0回答:1

通过实验,似乎

CStringT::MakeReverse
CStringT::MakeUpper
都就地更改了字符串。

我应该注意的

CStringT
类文档上的关键字是什么,说这些操作是“就地”的?

在我的新手看来,返回一个值意味着这些方法会创建新副本。

c++ mfc
1个回答
1
投票

收集上面评论中提到的好点:

文档中有几点提示这些方法正在就地改变当前对象。

  1. 这些方法未标记为

    const
    。虽然不是必须的,但不修改对象的方法应该标记为
    const
    ,缺少它暗示这些方法确实修改了它。

  2. Make
    开头的方法名称通常暗示它们修改当前对象以将其“变成”其他东西。

  3. 这些方法返回

    CStringT&
    。如果他们创建一个新对象,它将按值返回。除了当前对象之外,没有其他对象可以返回对此处的引用。

  4. 文档文本,例如“反转 CStringT 对象中字符的顺序。” 提示当前对象将被修改。

© www.soinside.com 2019 - 2024. All rights reserved.