Я заметил некоторый код коллеги сегодня, который инициализировал переменные класса при инициализации. Однако он вызывал предупреждение, говорит он из-за заказа, в котором они находятся. Мой вопрос: почему лучше делать переменную инициализацию там, где она сейчас есть, а не в фигурных скобках?Инициализация класса C++, содержащая инициализацию переменной класса
DiagramScene::DiagramScene(int slideNo, QRectF screenRect, MainWindow* parent)
: QGraphicsScene(screenRect, parent),
myParent(parent),
slideUndoImageCurrentIndex(-1),
nextGroupID(0),
m_undoInProgress(false),
m_deleteItemOnNextUndo(0)
line(0),
path(0)
{
/* Setup default brush for background */
scDetail->bgBrush.setStyle(Qt::SolidPattern);
scDetail->bgBrush.setColor(Qt::white);
setBackgroundBrush(scDetail->bgBrush);
}
Просто общая терминологическая заметка: речь идет о переменных-членах. Элементы-члены принадлежат объекту. Переменные класса не существуют в C++, в то время как они выполняются, например, Ruby, и служат более или менее целью статических переменных-членов C++. – xtofl 2008-10-02 11:20:28