У меня проблема, и я не знаю, как начать ее решать. Я делаю это на C++.Как расширить класс, для которого у вас нет исходного кода?
Предположим, что у нас есть исполняемая программа (платформа UNIX), и мы можем запустить эту программу, набрав my_program. Параметры здесь 4 класса. Каждый из этих классов должен расширять класс, который написан в целевой программе (в my_program).
Итак, скажем, чем в моей_программе у нас есть классы A, B, C и D. Пользователь знает, что он должен расширять эти классы, поэтому он создает четыре дочерних класса.
class A1 : public A { ... }
class B1 : public B { ... }
class C1 : public C { ... }
class D1 : public D { ... }
Возможно ли это? классы A, B, C и D находятся в my_program, поэтому он может каким-то образом расширить их?
Не наследуйте их классы, создайте совершенно новый, содержащий экземпляр своего класса. Состав над наследованием и все такое. –
Вы имеете в виду вот так? 'class A1 { Переменная; } ' , а затем в программе я просто вызываю A.methodName? Actuly - это чистое решение: D и просто :) – golobich
Возможно, вы можете загрузить исполняемый файл как общий объект, но это не очень хорошая идея. Просто создайте общий объект и сопроводительный заголовочный файл, и пусть my_program и программа пользователей загружают один и тот же общий объект. –