C++ 访问器——我应该返回一个指向成员变量的指针还是返回实际的成员变量本身?

标签 c++ variables pointers member accessor

我希望这里有一个简单的问题。对于我的类的成员变量,它们都是私有(private)的,我应该使用访问器返回一个指针还是返回变量本身?还是我应该做点别的?

例子:

unsigned int *Object::GetObjectIDPointer()
{
    return &objectID;
}

unsigned int Object::GetObjectID()
{
    return objectID;
}

最佳答案

这在很大程度上取决于你想用它们做什么:如果你计划你的类的用户能够在你的类中修改变量(这是一个可怕的和强烈反对的事情)你可以返回指针或引用;否则,返回变量本身。

当您想要返回的对象很大时,例如 vector 、集合、映射等,此规则有一个异常(exception)。如果您决定为它们创建访问器,则应通过常量引用返回它们。

关于C++ 访问器——我应该返回一个指向成员变量的指针还是返回实际的成员变量本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361911/

相关文章:

c++ - 创建字符宽度不可知函数

c++ - 为什么析构函数和复制构造函数显示对象数组的这种行为?

c++ - 一个成员函数的设计问题

c++ - 如何在 C++ 中初始化结构

java - java中的用户环境变量

python - 如何在python中将变量转换为字符串

android - ListView中的隐藏字段传递一个变量

java - JAVA中一个对象如何指向许多其他对象?

c程序指针

c - 初始化中结构内存分配中的指针(c99)