gpt4 book ai didi

c++ - 通过引用将 int 数组传递给构造函数

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

我正在使用 C++ 编写 AVR 程序

为了使用更少的内存,我想通过构造函数将指向预定义的 int 数组的指针传递给类成员,以使用 OOP 访问数组

我不能在构造函数中定义这个数组,因为它是一个 lib 类,这个数组及其大小将在使用这个 lib 类的其他程序中改变

代码:

class A
{
private:
const unsigned char arr[];
unsigned char arrSize;
public:
A(const unsigned char arr[],unsigned char arrSize)
{
this->arr = arr;
this->arrSize=arrSize;
}
};

下一个编译错误:

incompatible types in assignment of 'unsigned char*' to 'unsigned char [0]

我知道我做错了什么,但我不知道到底哪里出了问题以及如何解决。

最佳答案

根据您的评论,您只需要一个指向数组的指针。要做到这一点,你只需要在你的类(class)中有一个指针。它应该看起来像

class A
{
private:
const unsigned char* arr; // just use a pointer here
unsigned char arrSize;
public:
A(const unsigned char arr[],unsigned char arrSize) : arr(arr), arrSize(arrSize) {}
// ^^^^^ this decays to a const unsigned char*
};

我要提醒您,这种设计可能会有问题。如果类对象比它指向的数组活得更久并且您使用指针,那么您将有未定义的行为,因为您不再知道该空间中有什么。

关于c++ - 通过引用将 int 数组传递给构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39536007/

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