Klassen instanziieren und übergeben

ich weis nicht was c# mit den Zeilen macht, aber das kompiliert ohne Warnung mit dem Arduino Framework:

class ICommunication {};
class ICommunicatorManager {
  public:
    void machWasMitDenDaten(int foo[5]) {
      (void)foo;
    }
};

class I2CCommunication : public ICommunication {
  public:
    ICommunicatorManager _commManager;

    I2CCommunication(ICommunicatorManager commManager) : _commManager (commManager) {}

    void pushToManager() {
      _commManager.machWasMitDenDaten(new int[5]);
    }
};



void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Ohne konkreten Anwendungsfall bin ich dann draußen.