首页  >  文章  >  后端开发  >  我什么时候应该在 C 中返回 const 对象或指针?

我什么时候应该在 C 中返回 const 对象或指针?

Patricia Arquette
Patricia Arquette原创
2024-10-29 05:46:311086浏览

When Should I Return const Objects or Pointers in C  ?

我应该返回 const 对象还是指针?

在“Effective C Item 03”中,建议在可行的情况下使用 const。例如,Bigint 类可以同时具有可变版本和 const 版本的operator[] 函数来访问其数据。

但是,返回 const 对象和返回非 const 对象之间的区别较小对于像 foo() 这样返回原始类型的简单函数来说是清晰的。人们可能会认为它们的行为相同,但这并不完全正确。

顶级 cv 限定符和返回类型

对于原始类型,顶级 -返回类型上的级别 cv 限定符将被忽略。因此,以下函数声明在功能上是等效的:

<code class="cpp">int foo();
int const foo();</code>

两个函数都返回一个 int,无论返回类型上的 const 限定符如何。

类类型和类型的意义引用

在处理类类型或引用时,这种区别变得至关重要。返回 const T 可防止调用者对返回值调用非常量成员函数。考虑以下示例:

<code class="cpp">class Test
{
public:
    void f();
    void g() const;
};

Test ff();
Test const gg();

ff().f(); // legal
ff().g(); // legal
gg().f(); // illegal
gg().g(); // legal</code>

这里,gg() 返回一个 const Test 对象,该对象禁止调用其非常量成员函数 f()。

以上是我什么时候应该在 C 中返回 const 对象或指针?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn