我正在构建一个类,其中应该有一个数组。我目前正在尝试传递一个数组,但该数组可以是任意大小的。当我尝试这样做时,它不起作用。有谁知道该怎么做?我目前遇到了一些问题,但这是我的代码:
中继.cpp
Relay::Relay(short pins[])
{
_relay = pins;
_binding = new short[length()];
for(short i=0; i
_binding[i]=0;
}
short Relay::length()
{
return sizeof(_relay)/sizeof(short);
}
继电器.h
class Relay
{
công cộng:
Relay(short pins[]);
short length();
riêng tư:
short *_relay;
short *_binding;
};
当我创建实例时:
Relay reles((short[]){11, 10, 9, 8, 7, 3, 2, 73, 4, A0, A1, A2, A3, A4});
编辑:在 Resident biscuit 的建议下,我得到了这样的 cpp 文件,但它给了我 undefined reference `operator new[](unsigned int) 错误。此外,当我尝试访问 _pins 并显示 _pins[i] 中使用的内容时,它没有显示我传递给实例的内容。例如,如果我显示 _pins[0] 上的内容,它应该返回 11,但实际上没有。
如果您要使用这种方法,您需要分配一些内存。
_bindings = new short[size];
不要忘记在使用完后释放内存。
删除[] _bindings;
Tôi là một lập trình viên xuất sắc, rất giỏi!