Вам понадобится доступный деструктор, что бы вы ни делали.Но чтобы ответить на ваш вопрос, можно было бы вызвать статическую функцию для проверки параметров из инициализатора:
class MyClass {
private:
static void checkParam(int);
// ...
};
MyClass::MyClass(int someParam) : otherMember( (checkParam(someParam), 2) ) {
// ...
}
static void MyClass::checkParam(int someParam) {
if (...) throw someException();
}
Обратите внимание, что ,
, используемый там, - это оператор запятой, а не разделитель аргументов -он вычисляет как левое, так и правое выражения и отбрасывает результат левого.