如何将对象数组传递给函数?
How to pass object array to a function?
class department
{
void max() ***HOW TO PASS ARRAY OF OBJECT HERE , WHAT PARAMETERS SHOULD I PASS***
{
}
};
class B : public department {
};
int main()
{
B a[10];
// a.max(a,n); ***HOW TO CALL THIS max FUNCTION***
return 0;
}
我想将对象数组 a[10]
传递给 max
函数。怎么调用和传递?
我不想这样做:
for(i = 0; i < n; i++)
{
a[i].max
}
您将 max()
实现为 department
的 非静态 方法,因此您需要一个 department
对象来调用它,像数组中的每个 B
对象,例如:
for(int i = 0; i < 10; ++i)
{
a[i].max();
}
如果这不是您想要的,那么 max()
需要从 department
中删除,或者至少改为 static
。无论哪种方式,您都必须更改其输入参数以接受数组。
尝试更像这样的东西:
class department
{
public:
static void max(department *depts, int count)
{
//...
}
};
class B : public department {
};
int main()
{
B a[10];
department::max(a, 10);
return 0;
}
或者:
class department {
};
class B : public department {
};
void max(department *depts, int count)
{
//...
}
int main()
{
B a[10];
max(a, 10);
return 0;
}
How to pass object array to a function?
函数的参数不能是C++中的数组。参数可以是对数组的引用。或者,通常传递指向数组元素的迭代器。对象指针是数组的迭代器。
department::max()
是一个非静态成员函数。它有空参数列表,所以它根本不接受任何参数,除了用作成员访问运算符的左手操作数的隐式 class 实例。由于此函数不接受对数组参数或指针参数的引用,因此无法将数组作为参数传递。
下面是一个接受数组引用作为参数的函数的示例,以及如何调用此类函数的示例:
void max(B (&arr)[10]);
int main()
{
B a[10];
max(a);
}
class department
{
void max() ***HOW TO PASS ARRAY OF OBJECT HERE , WHAT PARAMETERS SHOULD I PASS***
{
}
};
class B : public department {
};
int main()
{
B a[10];
// a.max(a,n); ***HOW TO CALL THIS max FUNCTION***
return 0;
}
我想将对象数组 a[10]
传递给 max
函数。怎么调用和传递?
我不想这样做:
for(i = 0; i < n; i++)
{
a[i].max
}
您将 max()
实现为 department
的 非静态 方法,因此您需要一个 department
对象来调用它,像数组中的每个 B
对象,例如:
for(int i = 0; i < 10; ++i)
{
a[i].max();
}
如果这不是您想要的,那么 max()
需要从 department
中删除,或者至少改为 static
。无论哪种方式,您都必须更改其输入参数以接受数组。
尝试更像这样的东西:
class department
{
public:
static void max(department *depts, int count)
{
//...
}
};
class B : public department {
};
int main()
{
B a[10];
department::max(a, 10);
return 0;
}
或者:
class department {
};
class B : public department {
};
void max(department *depts, int count)
{
//...
}
int main()
{
B a[10];
max(a, 10);
return 0;
}
How to pass object array to a function?
函数的参数不能是C++中的数组。参数可以是对数组的引用。或者,通常传递指向数组元素的迭代器。对象指针是数组的迭代器。
department::max()
是一个非静态成员函数。它有空参数列表,所以它根本不接受任何参数,除了用作成员访问运算符的左手操作数的隐式 class 实例。由于此函数不接受对数组参数或指针参数的引用,因此无法将数组作为参数传递。
下面是一个接受数组引用作为参数的函数的示例,以及如何调用此类函数的示例:
void max(B (&arr)[10]);
int main()
{
B a[10];
max(a);
}