gpt4 book ai didi

c++ - 传递 const &object 与 const object 的区别

转载 作者:太空狗 更新时间:2023-10-29 20:27:24 27 4
gpt4 key购买 nike

假设你有这样一个函数

bool verifyObject(const myObj& obj);

或者这个

bool verifyObject(const myObj obj);

据我了解,当您在第二种情况下传递类似的内容时,会制作一份拷贝。但是,编译器可能会像第一种情况一样利用常量性来传递。因此,我认为以任何一种方式传递 const 对象都没有区别。

我错了吗?

最佳答案

第二个,从调用者的角度来看相当于

bool verifyObject(myObj obj);

而且,作为声明,这两个是完全等价的:

bool verifyObject(myObj obj);
bool verifyObject(const myObj obj);

所有顶级常量在函数声明中都被忽略。差异仅在定义

期间显现
bool verifyObject(const myObj obj)
{
obj.NonConstMethod(); //compiler error!
}

您不能修改函数内部的拷贝,调用者根本不关心它。作为功​​能实现者,这只是为了您自己的目的。

关于c++ - 传递 const &object 与 const object 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545397/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com