将类对象数组作为const传递给函数,以防止对类对象进行任何修改

Pass an array of class objects as const to a function to prevent any modification of the class objects

本文关键字:对象 修改 任何 数组 const 函数      更新时间:2023-10-16

你好,我是c++新手,这个问题可能很简单。请耐心听我说:)

我有一个类Foo ==> Foo foo_objects[4];

的数组

如果我想把这个数组传递给一个函数:

function declaration: void do_something(Foo *foo_objects_ptr);
function call       : do_something(foo_ojects); 

现在我想把这个foo_objects数组传递给函数,并防止对这些对象进行任何修改。

function declaration: void do_something(const Foo *foo_objects_ptr);
function call       : do_something(foo_ojects);

这样做对吗?这是否保证foo_objects中的所有四个对象都将受到保护,不受do_something方法内部的任何修改,或者只有数组中的第一个对象享有const特权?

foo_objects_ptr + ifoo_objects_ptr具有相同的类型,因此它也是一个const指针。

所以foo_objects_ptr[i]对于所有i都是const