gpt4 book ai didi

c++强制数组声明而不给参数

转载 作者:行者123 更新时间:2023-11-28 00:23:05 25 4
gpt4 key购买 nike

我目前正在尝试在 C++ 程序中编写一组对象。但是,在尝试创建数组时它总是给我错误。所以在我的代码之上,我有以下代码:

#define sensNumber 4
ros::Publisher pub_range2 [sensNumber];

这给出了错误:

multisone2.ino:19:38: error: no matching function for call to ‘ros::Publisher::Publisher()’

所以它试图调用 Publisher 的构造函数,为什么?我该如何阻止它?

现在我知道这也可以用 Vectors 来完成,但我正在尝试优化代码,尤其是。为了提高阅读速度,所以我宁愿避免使用 vector (是的,我知道它仍然是线性的,但访问这个数组代表了我代码的很大一部分)。

最佳答案

当您尝试堆栈分配ros::PublishersensNumber 实例时,必须 调用默认构造函数。 p>

另一种方法是分配一个指向ros::Publisher 的指针数组。更好的是,std::unique_ptrstd::shared_ptr 数组。

关于c++强制数组声明而不给参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523822/

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