C++:如何将对象数组传递给函数?

标签 c++ pointers reference

我有一个指向对象数组的指针。看起来像:

MyClass *myClass[ 10 ];
myClass[ 0 ] = new MyClass(); // init for each of myClass[0..9]
myClass[ 0 ]->field1 = "hello";

如何通过引用将“myClass”传递给函数?我尝试了几个案例,但没有用。

最佳答案

如果你真的必须使用数组,那么

template<size_t N >
void foo(MyClass (&arr)[N] )
{
  // Access arr[i], size is N
}

...

foo(myClass);

否则,使用std::array

template<size_t N >
void foo(std::array<MyClass,N>& arr )
{
  // Access arr[i], size is N or arr.size()
} 

...

std::array<MyClass, 10> myClass = ....;
foo(myClass);

不过我不会将数组称为“myClass”。

关于C++:如何将对象数组传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17604164/

相关文章:

c++ - 主线程和插件中的pthread?

c++ - fread 速度管理非托管

c++ - 符号文件和调试

c - 指针和 getstring 函数

C++、字符串和指针

reference - AppleScript 引用对象 - 帮助我理解它们

C++ operator delete override 并不总是被使用

json - 指向 JSON 的指针数组

python - 如何在 Refextract 上一起运行多个文件

c# - 需要一些关于引用类型的说明