Korzystanie z list inicjalizujących jest ogólnie zalecane. Teraz załóżmy, że mam następujący kod (trywialny przykład tylko, aby kwestia jaśniejsze):Czy mogę wykonać sprawdzanie poprawności na liście inicjalizacyjnej konstruktora?
class foo
{
public:
foo(ptr1* a, ptr2* b) : m_a(a), m_b(b), m_val(a->val) {}
/* code and members here */
};
Chciałbym sprawdzić, czy nie jest NULL a
zanim spróbuje dereference to dostać val
. Czy jest jakiś sposób, abym mógł przeprowadzić tam test poczytalności?
To wystarczająco dobry kompromis. Mogę wtedy umieścić twierdzenia w ciele konstruktora, a oni faktycznie będą strzelać poprawnie. (+1) – Samaursa