我现在在写C++程序,有一个类叫Table,想给他传入一个结构体数组,在Table类中使用fun函数遍历这个结构体数组,但是传入的结构体数组内部结构不定,例如有可能传入里面有两个字符数组的结构体数组,也可能传入里面有三个字符数组的结构体数组,但是由于传入的结构体数组的内部结构不定,我无法再Table类中写一个遍历它的函数,请问这个问题该怎样解决
时间: 2024-03-12 16:46:48 浏览: 82
c++ 使用结构体的引用形式进行函数的传参操作
5星 · 资源好评率100%
你可以使用C++中的模板来解决这个问题。具体来说,你可以写一个模板函数,接受任何类型的结构体数组作为参数,并在Table类中使用该函数来遍历结构体数组。
以下是一个示例模板函数的代码,它可以遍历任何类型的结构体数组:
```cpp
template<typename T>
void traverseStructArray(T* arr, int len) {
for(int i=0; i<len; i++) {
// 在这里对结构体数组中的元素进行遍历操作
// 例如,可以使用 arr[i].xxx 访问结构体中的成员变量
}
}
```
在Table类中,你可以这样调用该模板函数:
```cpp
class Table {
public:
template<typename T>
void fun(T* arr, int len) {
traverseStructArray(arr, len);
// 在这里可以对遍历结果进行处理
}
};
```
这样,无论传入的结构体数组内部结构如何,都可以使用上述模板函数进行遍历了。
阅读全文