Я создаю интерфейсный класс для множества других больших объектов.Поскольку они большие, я передаю их по ссылке.У меня возникли некоторые проблемы.
Как создать объект по умолчанию, сохраняя при этом передачу по константной ссылке для объектов, которые у меня есть?В моем случае на самом деле в интерфейс входят n объектов (n> 4), а объекты 3-> n зависят от объектов 1 и 2.
Есть ли лучшеспособ построить класс?В настоящее время необходимо вызвать интерфейс (obj1, obj2 ...) с n объектами в точно правильном порядке, и, кроме того, он выглядит как беспорядок с необходимой инициализацией списка.
class Interface {
public:
Interface(const Obj1& obj1,
const Obj2& obj2,
const Obj3& obj3,
const Obj4& obj4) :
obj1(obj1),
obj2(obj2),
obj3(obj3),
obj4(obj4)
{}
// I want this 2nd constructor to create default version of obj3, obj4, etc.
// Even better if it will be default create any of the object missing,
// rather than making a separate constructor for each combination of
// missing objects.
Interface(const Obj1& obj1, const Obj2& obj2) : obj1(obj1), obj2(obj2) {}
// Getters
mat dat1() const { return obj1.dat1(); }
mat dat2() const { return obj2.dat2(); }
// ...
private:
const Obj1& obj1;
const Obj2& obj2;
const Obj3& obj3;
// ...
};