I am having trouble passing an array of object pointers from main() to a function from different class.
I created an array of object pointers listPin main() and I want to modify the array with a function editProduct in class Manager such as adding new or edit object.
Furthermore, I want to pass the whole listP array instead of listP[index]. How to achieve this or is there any better way? Sorry, I am very new to c++.
#include <iostream>
using namespace std;
class Product 
{
protected:
    string id, name;
    float price;
public:
    Product() 
    {
        id = "";
        name = "";
        price = 0;
    }
    Product(string _id, string _name, float _price)
    {
        id = _id;
        name = _name;
        price = _price;
    }
};
class Manager 
{
protected:
    string id, pass;
public:
    Manager(string _id, string _pass)
    {
        id = _id;
        pass = _pass;
    }
    string getId() const {  return id;  }
    string getPass() const {   return pass;  }
    void editProduct(/*array of listP*/ )
    {
        //i can edit array of listP here without copying 
    }
};
int main()
{
    int numProduct = 5;
    int numManager = 2;
    Product* listP[numProduct];
    Manager* listM[numManager] = { new Manager("1","alex"), new Manager("2", "Felix") };
    bool exist = false;
    int index = 0;
    for (int i = 0; i < numProduct; i++) { //initialize to default value
        listP[i] = new Product();
    }
    string ID, PASS;
    cin >> ID;
    cin >> PASS;
    for (int i = 0; i < numManager; i++) 
    {
        if (listM[i]->getId() == ID && listM[i]->getPass() == PASS) {
            exist = true;
            index = i;
        }
    }
    if (exist == true) 
        listM[index]->editProduct(/*array of listP */);
    return 0;
}
 
     
    