пятница, 18 марта 2011 г.

48. Как запретить неявное преобразование типа, выполняемое конструктором инициализации?

О конструкторе инициализации я писал в ответе на 46-й вопрос.
Для запрета нужно добавить ключевое слово explicit.
class A{
public:
  explicit A(B);
};

void f(A);
Тогда вызовы, типа f(b) (b экземпляр B) будут запрещены. Однако всегда можно воспользоваться явным преобразованием f(A(b)).

Комментариев нет:

Отправить комментарий

Можно использовать теги <b>, <i>