class A{
public:
A(): b(), c(), d(){}
private:
B b;
C c;
D d;
};
У меня есть нечто похожее на код выше. где список инициализации длиннее, чем здесь. Где-то в инициализации объектов происходят ошибки. Я хочу узнать, где это случилось? после какого объекта и при инициализации какого-либо объекта он терпит неудачу.Отладка Список инициализации конструктора
Я не хочу это делать, добавляя утверждения печати в соответствующие классы.
Один из способов подумать о том, что у меня есть класс temp, который напечатает строку для меня в своем конструкторе; Таким образом, мне нужно иметь столько же объектов, сколько количество переменных класса в моем классе A. Не существует segfault или любого исключаемого исключения, которое я могу поймать.
Так что я могу отладить это иначе, чем иметь temp tem с таким количеством объектов temp, как переменные-члены. Есть ли разумный способ отладить это. Благодарю.
Вы пытались использовать отладчик? – FRob
Является ли порядок списка инициализации таким же, как порядок, в котором объекты объявлены в определении класса? И для любого из конструкторов этих объектов требуется передать другой объект? – Praetorian
Ну, моя программа работает на кластере, поэтому я не могу прикрепить отладчик, поскольку он встречается на одном из узлов. Да, порядок инициализации правильный, и ни один из объектов не передается другим классам, которые неинициализированы. Но в любом случае, если я хочу напечатать заявление после инициализации каждого объекта, есть ли простой способ сделать это, кроме того, о котором я упоминал. – rkb