可以对类getter使用自动返回类型吗?

时间:2018-08-01 21:22:17

标签: c++14 getter return-type auto

由于我不是一位经验丰富的程序员,所以我想请教您有关以下方面的意见:

class MyClass {
public:
    // Constructors, setters, other machinery...

    auto getSize() const {return size;}
    auto getLabel() const {return label;}

private:
    int size;
    std::string label;
};

想到的问题如下:

可以将 auto 用作这些吸气剂的返回类型,还是应该将它们用作 getSize()的传统详细 int getLabel() std :: string

那么,为什么这个问题来了?据我所知,上面的代码在技术上似乎还不错,并且不会产生错误(我不知道),但是它似乎也隐藏了一些关键信息。

当我看这些吸气剂时,我可以(具有很高的确定性,但不是绝对确定)推断出 getLabel()将返回一个字符串,但是我能告诉我 getSize() ?它是否返回i​​nt,size_t或用户定义的类型?除非我自己检查返回值的类型,否则我不确定。

在我看来,标头的许多目的之一是提供特定类的漂亮清晰的概述,但是 auto 在这种情况下有点模糊了这种清晰度,因为我被迫在代码中往下看以获得我需要的实际信息。

那么您更喜欢哪种吸气剂(为什么)?显式类型还是自动?

提前感谢所有见解。

1 个答案:

答案 0 :(得分:0)

尽管这个问题是基于观点的,但我会给出答案。

因为答案是:“ 有待辩论”。我记得有人(Herb Sutter meybe,我不记得了,我不想错过属性)说该功能是新功能,并且“我们还不知道要给出什么建议”。