У меня есть программа, где мне нужно сделать базовый класс, который передается между DLL и некоторым кодом приложения. Тогда у меня есть два разных производных классов, один в DLL в основном приложении. Каждый из них имеет несколько статических элементов, которые работают на данных в классе NASE. (Они должны быть статичными, как используются как указатели функции в другом месте). В самой простой форме моя проблема показана ниже.
class Base {
protected:
int var ;
};
class Derived : public Base {
static bool Process( Base *pBase ) {
pBase->var = 2;
return true;
}
};
Мой компилятор жалуется на то, что я не могу получить доступ к защищенным членам PBase, хотя полученный охранял доступ к базе. Есть ли путь вокруг этого или я что-то не понимаю? Я могу сделать базовые переменные публики, но это было бы плохо, так как в моем реальном примене есть комок выделенной памяти и семафоры для защиты его для многопоточьего.
Помощь?