gpt4 book ai didi

C++:是否有必要将常量添加到作为参数传递的 POD 中?

转载 作者:太空狗 更新时间:2023-10-29 23:25:44 28 4
gpt4 key购买 nike

想象一个接受 int 或 unsigned int 或任何 POD 的函数签名。如果您只是从中读取内容,那么对它们进行 const 有什么好处>?

我唯一能想到的是,这样您就不会弄乱并意外地分配给它?

最佳答案

我假设您是在讨论 void f( const type x ) 中的顶级限定符,而不是指向/引用对象的常量。在那种情况下,重要的是要注意语言确定函数参数中的顶级 const-volatile 限定符已从函数的签名中删除,即以下声明相同的函数:

void f( int );
void f( const int );
void f( volatile int );
void f( const volatile int );

从这个角度来看,在声明中添加 cv 限定符是没有意义的。现在在定义中,cv 限定符实际上由编译器检查,在这种情况下,它会将对参数的更改标记为错误。我见过一些人建议你应该,一些人建议你不应该在定义中使用 const 来捕获错误,但在我看到的大多数代码中,没有使用 const

关于C++:是否有必要将常量添加到作为参数传递的 POD 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399501/

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