У меня есть следующие два класса.Запретить пользователям создавать объекты, но допускать некоторые классы
Class A
{
proctected:
A(){}
};
Class B
{
push_new_A_into_v();
vector<A> v;
};
Функция
push_new_A_into_v();
не будет компилироваться, так как конструктор A защищен. Сделать B наследовать от A не поможет, так как метод создает совершенно новый A (Why is protected constructor raising an error this this code?).
Причина конструктор защищена, чтобы заставить пользователей не может создать объект типа А.
Как я могу сделать это возможным метод работы в то время как пользователи по-прежнему не в состоянии создать объекты типа А?
Сделать класс B другом? –
'proctected:' должен быть 'protected:' – HolyBlackCat
Зачем вам нужен конструктор для защиты? Вам это нужно как абстрактный класс? или вы просто хотите контролировать, кто к нему обращается? – Pedrom