Есть ли способ заставить количество исполнений функции-члена одному? Для того, чтобы объяснить, позволяет сказать, что у меня естьОдин раз в жизни
class foo {
public:
void Once();
};
Я хочу каждый экземпляр Foo, чтобы вызвать функцию член Foo :: После того, как() ровно один раз. Если вызов был сделан, чтобы снова запретить вызов, и если звонок не был сделан, вызовите его перед уничтожением.
- Есть ли идиома или шаблон дизайна, связанный с этим?
- Является ли жестко закодированное решение по размещению члена
foo::was_called_flag
(который я установил бы 0 или 1), допустимо или есть какие-либо уязвимости? - Есть ли решение, которое масштабируется хорошо произвольное число казней
использовать счетчик. что вы хотите, когда вызывающий нарушает ваши правила? – thang
... конструктор вызывается один раз ... – doctorlove
@doctorlove Но иногда выполнение вычислений в конструкторе просто не подходит. –