Могу ли я Получите доступ к базовым классам, защищенным элементам из статической функции в полученном классе?

У меня есть программа, где мне нужно сделать базовый класс, который передается между DLL и некоторым кодом приложения. Тогда у меня есть два разных производных классов, один в DLL в основном приложении. Каждый из них имеет несколько статических элементов, которые работают на данных в классе NASE. (Они должны быть статичными, как используются как указатели функции в другом месте). В самой простой форме моя проблема показана ниже.

class Base {
protected:
  int var ;
};

class Derived : public Base {
  static bool Process( Base *pBase ) {
    pBase->var = 2;
    return true;
  }
};

Мой компилятор жалуется на то, что я не могу получить доступ к защищенным членам PBase, хотя полученный охранял доступ к базе. Есть ли путь вокруг этого или я что-то не понимаю? Я могу сделать базовые переменные публики, но это было бы плохо, так как в моем реальном примене есть комок выделенной памяти и семафоры для защиты его для многопоточьего.

Помощь?

19
задан iammilind 5 September 2011 в 11:25
поделиться