gpt4 book ai didi

c++ - 如何将动态结构数组传递给成员函数?

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

我想知道如何将动态分配的结构数组从主函数传递给类的成员函数。我不一定需要在成员函数中更改它的值,只需打印它即可。

如果我像下面代码片段中的整数数组那样做,我会得到 MyStruct 未在 MyClass.h 中定义MyClass.cpp 文件。 (有道理)
如果我在 MyClass.h 中包含 main.cpp,我会得到很多奇怪的错误。另一个想法是在成员函数参数中添加 struct,但这也会导致其他错误。

我需要在类之外声明结构数组,而不是作为成员,而且我不能使用 STL 容器。

ma​​in.cpp:

#include "MyClass.h"

int main()
{
MyClass my_class;

struct MyStruct
{
int a;
int b;
};

MyStruct* struct_array = new MyStruct[4];
// Fill struct array with values...
my_class.printStructArray(struct_array);
}

MyClass.h:

#include <iostream>
class MyClass
{
// ...
void printStructArray(MyStruct* struct_array);
};

MyClass.cpp:

#include "MyClass.h"

void MyClass::printStructArray(MyStruct* struct_array)
{
std::cout << struct_array[0].a << struct_array[0].b;
// ...
}

最佳答案

只需将 struct 定义移动到 MyClass.h 或它自己单独的头文件中:

MyClass.h

#include <iostream>

struct MyStruct {
int a, b;
};
class MyClass {
// ...
void printStructArray(MyStruct* struct_array);
};

关于c++ - 如何将动态结构数组传递给成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31833177/

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