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

时间:2014-05-07 15:32:18

标签: c++ const pass-by-pointer

您好我是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权限?

1 个答案:

答案 0 :(得分:3)

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

因此foo_objects_ptr[i]是所有i的常量。