Прошу прощения, мой вопрос может показаться очень простым или очень неестественным.
Предположим, у вас есть класс A и подкласс A ', который имеет больше функций, но не имеет больше данных, а также класс B, который имеет элемент класса A. То есть у нас есть что-то вроде:
class A
{
...
};
class A' : public A
{
(functions only)
};
class B :
{
public:
something<A> data;
};
Есть ли способ создать подкласс B 'от B таким образом, чтобы «данные» фактически были элементом A'? В моей ситуации B также является подклассом A, но я не думаю, что это актуально. Фактически, элемент A представляет собой гипергрань произвольной размерности; B - это, в частности, размерность 1. «this-> data» - это набор гиперграфов, ограничивающих «this», таким образом, это набор элементов A. Но я точно знаю, что это вершина, это мой класс A ' .
Я бы хотел избежать отрицания всего и создания виртуальных функций для всего, потому что мне пришлось бы сделать это для четырех конкретных измерений ... И также я хочу быть уверенным, что когда создается ребро, его граница состоит из вершин.
Возможно, только функции должны быть не методами class A', а автономными функциями. Это устранило бы необходимость в авантюрных забросах. Нашел это: Скотт Мейерс: как функции, не являющиеся членами, улучшают инкапсуляцию
@SamVarshavchik Разве мой предпоследний абзац не объясняет, в чем заключается настоящая проблема? Кстати, я спрашиваю не только потому, что хочу решить именно эту задачу, а потому, что мне интересно чему-то научиться. Не забывайте, что проблема XY - это проблема CS, а не социологическая.
Нет, это не объяснение реальной проблемы. Это объяснение того, что, по вашему мнению, является решением настоящей проблемы.





Короткий ответ - нет. C++ так не работает. В этом есть все признаки проблемы XY. Вместо того, чтобы спрашивать, как поступить с тем, что, по вашему мнению, является решением реальной проблемы, вам следует объяснить, в чем заключается настоящая проблема. Настоящая проблема не в том, как создать свой подкласс
B, а в том, какова бы ни была проблема, которая заставляет вас поверить, что вам нужно создать такой подкласс. Вот в чем реальный вопрос.