Ссылочные члены c ++: хорошая практика? - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю над этим кодом, где есть некоторые параметры (скажем, A и B), которые необходимо обновить в зависимости от значения друг друга.Каждое обновление требует отдельного класса, а полный алгоритм содержится в другом классе, например:

class MyClass {
  AUpdater aUpdater;
  BUpdater bUpdater;

  void doStuff(int numTimes) {
    for (int i=0; i<numTimes; i++) {
      aUpdater.update();
      bUpdater.setParams(aUpdater.get_a());
      bUpdater.update();
      aUpdater.setParams(bUpdater.get_b());
    }   
  }
}

class AUpdater {
 protected:
  A a;
  B paramb;
 public:
  void update();
  A get_a();
 }

 class BUpdater {
  protected: 
   B b;
   A parama;
  public:
   void update();
   B get_b();
 }

Теперь я думаю, что использование ссылок на A и B в классе A и классе B ускорит код какне было бы необходимости вызывать методы getters и setters на каждой итерации.

Однако я прочитал, что наличие ссылочных параметров в классах может быть не очень хорошей идеей, и, поскольку я довольно новичок в c ++, я бродил, что«правильный» дизайн кода для этой конкретной задачи.

В частности, какой объект должен иметь «оригинал» A и «оригинал» B?Должны ли они быть в MyClass?

Спасибо!

...