Сообщение Re: как использовать класс от 03.02.2017 13:28
Изменено 03.02.2017 13:34 kov_serg
Re: как использовать класс
Здравствуйте, sergey2b, Вы писали:
S>Подскажите пожалуйста как ответить на такой вопрос
S>имееться определение класса A
S>который используеться в 16 Gb кода
S>как надо организовать использование класса A так что бы
S>изменение его определение (скажем добавили новый метод) не вызывало полной перекомпиляции используещего его кода
Если кол-во методов меняется используй динамическую диспечеризацию вызовов + методы для получения информации об их наличии типа IDispatch
S>Подскажите пожалуйста как ответить на такой вопрос
S>имееться определение класса A
S>который используеться в 16 Gb кода
// h
struct A { // interface
virtual ~A() {}
virtual int dispatch(int id,void* args)=0;
virtual void fn1()=0;
...
virtual void fn100500()=0;
};
...
// dynamic lib
struct A1 : A {
...
virtual void fn100501()=0;
};
S>как надо организовать использование класса A так что бы
S>изменение его определение (скажем добавили новый метод) не вызывало полной перекомпиляции используещего его кода
Если кол-во методов меняется используй динамическую диспечеризацию вызовов + методы для получения информации об их наличии типа IDispatch
Re: как использовать класс
Здравствуйте, sergey2b, Вы писали:
S>Подскажите пожалуйста как ответить на такой вопрос
S>имееться определение класса A
S>который используеться в 16 Gb кода
S>как надо организовать использование класса A так что бы
S>изменение его определение (скажем добавили новый метод) не вызывало полной перекомпиляции используещего его кода
Если кол-во методов меняется используй динамическую диспечеризацию вызовов + методы для получения информации об их наличии типа IDispatch
S>Подскажите пожалуйста как ответить на такой вопрос
S>имееться определение класса A
S>который используеться в 16 Gb кода
// h
struct A { // interface
virtual ~A() {}
virtual int dispatch(int id,void* args)=0;
virtual void fn1()=0;
...
virtual void fn100500()=0;
};
...
// dynamic lib
struct A1 : A {
...
virtual void fn100501() {};
};
A* create_A() { return new A1(); }
S>как надо организовать использование класса A так что бы
S>изменение его определение (скажем добавили новый метод) не вызывало полной перекомпиляции используещего его кода
Если кол-во методов меняется используй динамическую диспечеризацию вызовов + методы для получения информации об их наличии типа IDispatch