Вопрос по синтаксису c++...
Aug. 21st, 2007 04:00 pmclass EXPORT EventHomeDir : public Event
{
public:
EventHomeDir(const QString &dir)
: Event(eEventHomeDir), m_dir(dir) {}
const QString &homeDir() const { return m_dir; }
void setHomeDir(const QString &dir) { m_dir = dir; }
protected:
QString m_dir;
};1. Что такое EventHomeDir(const QString &dir) : Event(eEventHomeDir), m_dir(dir) {} Что-то не припомню что такое двоеточие и не понимаю что вся эта конструкция означает...
2. const QString &homeDir() const { return m_dir; } -- что означает амперсанд перед именем функции... Зачем он тут?
Туплю... Ничего не понимаю... Хоть за страуструпом к родителям едь...
no subject
Date: 2007-08-21 12:27 pm (UTC)"Для создания объекта EventHomeDir из QString dir сначала инициализируем его как Event с параметром eEventHomeDir, а потом инициализируем член m_dir строкой dir. Больше не делаем ничего."
2. Амперсэнд означает что эта функция возвращает ссылку на объект. Такой синтаксический sugar в С++ есть - хрень которая синтаксически почти везде выглядит как переменая типа класс, а на самом деле является указателем.
no subject
Date: 2007-08-21 12:31 pm (UTC)... Наша профессия не для дураков ...
no subject
Date: 2007-08-21 12:33 pm (UTC)То есть запись
EventHomeDir(const QString &dir) : m_dir(dir) {}
равнозначна
EventHomeDir(const QString &dir) : {m_dir = dir}
2. вроде как указатель на функцию...
no subject
Date: 2007-08-21 12:36 pm (UTC)no subject
Date: 2007-08-21 12:37 pm (UTC)Правильный — у Виктора.
no subject
Date: 2007-08-21 12:39 pm (UTC)... Векторы прерываний были завязаны узлом ...
no subject
Date: 2007-08-21 12:43 pm (UTC)no subject
Date: 2007-08-21 12:52 pm (UTC)Не, спасибо, этого хватит ;-)
Я даже не ожидал такой бурной и немедленной реакции... ;-)
Правильный — у Виктора.
Ну это уж кто бы сомнивался ;-)
no subject
Date: 2007-08-21 12:53 pm (UTC)Теперь мне все ясно! ;-)
no subject
Date: 2007-08-21 12:54 pm (UTC)Я вот тоже, как выяснилось, не знаю... А что делать...
За ответ спасибо ;-)