由于我不是一位经验丰富的程序员,所以我想请教您有关以下方面的意见:
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() ?它是否返回int,size_t或用户定义的类型?除非我自己检查返回值的类型,否则我不确定。
在我看来,标头的许多目的之一是提供特定类的漂亮清晰的概述,但是 auto 在这种情况下有点模糊了这种清晰度,因为我被迫在代码中往下看以获得我需要的实际信息。
那么您更喜欢哪种吸气剂(为什么)?显式类型还是自动?
提前感谢所有见解。
答案 0 :(得分:0)
尽管这个问题是基于观点的,但我会给出答案。
因为答案是:“ 有待辩论”。我记得有人(Herb Sutter meybe,我不记得了,我不想错过属性)说该功能是新功能,并且“我们还不知道要给出什么建议”。