Реализация ссылок на объекты многих классов в конструкторе нового класса с параметрами - PullRequest
0 голосов
/ 16 марта 2019

Как правильно реализовать конструктор класса:

class NewClass
{
public:
    NewClass(Class1 &Name1, Class2 &Name2 )
...
};

, если число различных классов Class1 и Class2 значимо?

Для небольшого числа классов (Class1 и Class2) выможет вручную создать все возможные перегрузки конструктора, и что, если существует много таких классов или неизвестное число?

Этот код используется для реализации расчета гидравлической сети.Например:

class Pipe
{
public:
    Pipe(Tank &pipeEnd1, Node &pipeEnd2 )
...
};

, то есть класс трубы и два объекта на его концах - класс резервуара и класс соединения.Но есть много возможных вариантов, по крайней мере, 5-6 различных классов.

1 Ответ

0 голосов
/ 16 марта 2019

используйте шаблон


template<typename Class1, typename Class2>
class NewClass //: some_interface
{
public:
    NewClass(Class1 &Name1, Class2 &Name2 )
...
};

Или используйте Class1 и Class2 в качестве интерфейса


class Class1{};
class Class2{};
class Tank:public Class1{};
class Node:public Class2{};

class Pipe
{
public:
    Pipe(Class1 &Name1, Class2 &Name2 )
...
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...