Используйте указатели с крайней паранойей.Для каждой переменной-члена, которую вы объявляете в классе, документируйте, владеет ли он временем жизни памяти, на которую он указывает.Если это так, то он отвечает за распределение и освобождение памяти.И если ему принадлежит память, на которую он указывает, запишите это ЯСНО!Также помните, выделите в конструкторе и освободите в деструкторе.Это великое правило, которое вы игнорируете на свой страх и риск.Также обнуляйте свои указатели, кроме случаев, когда вы их используете.Обнуляйте их, когда они инициализированы, и после того, как вы их освободите.Повсюду размещайте множество утверждений, проверяя целостность ваших указателей, ДО того, как вы разыграете их.Поместите настоящих охранников, чтобы справляться с ситуациями, когда они плохие.
Последнее и самое важное:
ПОЖАРА любой бозо в вашей компании, кто нарушает эти правила !!!Они буквально привносят неисчислимые повреждения в ваш продукт и вызывают множество ошибок и головных болей в будущем.
Редактировать: ссылка Favorite c ++ website