#cpp
Как запретить использование конструктора копирования и оператора присваивания? Т.е. так чтобы классом мог пользоваться только другой класс, а в main нельзя было создать экземпляр этого класса. В main компилироваться не должен, а в другом классе это было бы возможно: A a; A a(b); A a=b;
Ответы
Ответ 1
Можно решить данную проблему с использованием дружественного класса: class myClassClose{ myClassClose(); //конструктор по умолчанию myClassClose(const myClassClose&); //конструктор копирования myClassClose(myClassClose&&); //конструктор перемещения myClassClose operator = (const myClassClose&) const; //оператор присваивания myClassClose operator = (myClassClose&&) const; //оператор присваивания с перемещением public: friend class myClass; }; class myClass{ myClassClose a; public: myClass(){} };
Комментариев нет:
Отправить комментарий