Я определил суперкласс element
. Существует некоторый производный класс element
triangle
, quad
и cube
. Некоторые из объектов element
являются граничными элементами. Если element
является граничным элементом, то я должен определить дополнительные члены и функции данных. Я мог бы легко вывести boundary_element
класс, если element
класс не является базовым классом. (То, что я имел в виду это, если triangle
, quad
и cube
отдельные классы можно определить отдельные производные классы, как boundary_triangle
, boundary_quad
и boundary_cube
).производный класс базового класса, функционирующий как абстрактный класс
Так что моя проблема в том, что я должен определить подкласс boundary_element
, который должен быть основание (или даже абстрактно) класса для определения производных классов boundary_quad
, boundary_triangle
и boundary_cube
.
Это как-то возможно в C++? может ли кто-нибудь предложить любую архитектуру, которая служит цели?
Другой способ, которым я могу решить мою проблему в соответствии с моей логикой, определить класс, как показано ниже:
class boundary_element
{
element* m_boundary_elem;
//data members needed for quad,triangle and cube
public:
boundary (element*);
//functions for modifying data's of triangle,cube,quad.
}
element
указатель определяется как переменную-член другого класса. Как я могу реструктурировать этот класс эффективно с помощью наследования. (Т.е. Function как абстрактный класс, для получения boundary_triangle
, boundary_quad
и boundary_cube
класса)
Я не знаю, что мой вопрос странный, но как новичок, я действительно путаю, как использовать наследование должным образом. Извините, если мой заголовок вводит в заблуждение.
Я думаю, вы просто не должны использовать наследование этой проблемы вообще. –
@ChristianHackl, тогда я должен определить слишком много избыточных типов и функций данных в одном классе.Будет ли это неэффективно, поскольку он потребляет большую память? – hisham