gpt4 book ai didi

c++ - 函数参数 : Pointer to array of objects

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:40 26 4
gpt4 key购买 nike

在我的主要功能中,我创建了一个特定类“菜单”的对象数组

当我调用一个函数时,我想提供一个指向该数组的指针。

Menu menu[2];
// Create menu [0], [1]
Function(POINTER_TO_ARRAY);

问题:函数参数的正确写法是什么?

我尝试:

Function(&menu);

在头文件中:

void Function(Menu *menu[]); // not working
error: Cannot convert parameter 1 from Menu(*)[2] to Menu *[]

void Function(Menu * menu); // not working
error: Cannot convert parameter 1 from Menu(*)[2] to Menu *[]

我想不出任何其他方法来做到这一点,也找不到解决这个特定问题的方法。

简单地说,我希望能够通过指针访问函数内的 Menu 数组。普通指针指向数组指针有什么区别?

最佳答案

声明:

void Function(Menu* a_menus); // Arrays decay to pointers.

调用:

Function(menu);

但是,您需要通知 Function() 数组中有多少条目。因为这是 C++ 建议使用 std::arraystd::vector知道它们的大小、开始和结束:

std::vector<Menu> menus;
menus.push_back(Menu("1"));
menus.push_back(Menu("2"));

Function(menus);

void Function(const std::vector<Menu>& a_menus)
{
std::for_each(a_menus.begin(),
a_menus.end(),
[](const Menu& a_menu)
{
// Use a_menu
});
}

关于c++ - 函数参数 : Pointer to array of objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11866284/

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