微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将对象指针传递给通过引用接受对象的函数的正确方法是什么?

如何解决将对象指针传递给通过引用接受对象的函数的正确方法是什么?

C ++的新手,但C语言不熟悉。以前,我只是让我的函数接受对象指针,但是我试图学习C ++方式,并通过引用来处理传递的对象。

有没有一种正确方法,可以将对象指针传递给通过引用接受对象的函数

我举了一个示例,其中我向方法foo()传递了取消引用的指针,但我想知道这是否被认为是C ++的良好实践,还是我应该做其他事情。

class Entity {
    public:
        int x;
        Entity(int y) {
            x = y;
        }
};

void foo(Entity& e) {
    std::cout << e.x << std::endl;
}

int main()
{
  
  Entity* e = new Entity(5);
  foo(*e);
}

解决方法

通过引用函数传递参数时,应将其标记为const,以告诉自己(和其他程序员)函数不会修改传入的参数。

如果您要修改内容,则不会将其标记为const

class Entity {
public:
    int x;
    Entity(int y) {
        x = y;
    }
};

// pass arguments here by const reference since you're not modifying anything
void foo(const Entity& e) { 
    std::cout << e.x << std::endl;
}

int main() {
    Entity* e = new Entity(5);
    foo(*e);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。