将函数分配给C 中的数组元素
Assigning a function to an array element in c++
我当前正在从事作业作业,我们使用void函数打印信息。
我们的老师希望我们这样做:
在具有船舶阵列的程序中演示课程。分配 阵列元素的各种船,巡航和货物对象。 然后该程序应逐步浏览数组,调用对象的 printinfo方法。"
Ship ob1; // object of ship class CruiseShip ob2; // object of
cruiseship class CargoShip ob3; // object of cargoship class
typedef void((*shipArray)()); // declaring
void(*ob1)() = ob1.printInfo; // pointer to print info function in
ship class void(*ob2)() = ob2.printInfo; // pointer to print info
function in cruiseship class void(*ob3)() = ob3.printInfo; // pointer
to print info function in cargoship class
shipArray ship[3] = {ob1.printInfo, ob2.printInfo, ob3.printInfo}; //
array assigns the functions to each
element
for (int i = 0; i < 3; i++) // loop to output each function {
cout << ship[i] << endl << endl; }
我该如何完成?我被卡住了...
指令说数组应包含船舶,而不是功能指针。但是,为避免对象切片,它必须是一系列指针。您需要:
Ship *ships[] = {&obj1, &obj2, &obj3};
for (int i = 0; i < sizeof(ships)/sizeof(*ships); i++) {
ship[i]->printInfo();
}
您没有在数组中调用您的功能。
for (int i = 0; i < 3; i++) // loop to output each function
{
cout << ship[i]() << endl << endl;
}
相关文章:
- C++函数,它将数组、谓词和运算符作为参数,并将运算符应用于满足谓词的数组元素
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 创建一个函数来转换数组元素的类型并返回数组的地址
- Getter 函数,用于在 2d 数组是类的数据成员时检索 2d 数组元素
- 将函数分配给C 中的数组元素
- 覆盖数组元素时如何调用构造函数
- 将特定数组元素的地址传递到函数
- 避免在函数调用中计算数组元素
- 没有可行的构造函数复制类型 'MyString' 的数组元素
- 在数组计数函数中插入多个元素
- 默认构造函数自动创建的数组元素?
- OpenCV函数来计算类似于MATLAB产品的数组元素的乘积?
- 如何在 c++ 中将 char 数组元素传递给函数
- 需要帮助将数组元素/信息传递给函数C++
- 用于移动不起作用的数组元素的函数
- 函数调用后对多维数组元素进行计数
- 在函数中定义一个动态数组,然后返回数组元素。如何释放阵列的内存?
- 如何从用户(即控制台)提供数组元素,以及如何将数组元素作为参数传递给函数
- 使用多态基类(包含虚函数)访问数组元素时的类型
- 通过memset函数设置2D int数组元素为1