Название: Конструкторы, параметры по умолчанию... Отправлено: catprog от Февраль 18, 2010, 12:58 У меня такой вопрос, иногда в функцию(конструктор) на до передавать больше параметров чем обычно, но нехочется во всех вызовах приписывать эти пустые параметры, как сделать их пустыми в случае отсутствия.
Вот например если параметр по умолчанию типа int Код: bool Class_name::method_name(int item_name,int item_rel_level = REL_LEVEL_INDEPENDENT) А как сделать что бы по умолчанию был пустой QMap <QString,QString>??? Может лучше перегрузить конструктор и тело моего большого конструктора вынести в отдельный метод инит? Название: Re: Конструкторы, параметры по умолчанию... Отправлено: niXman от Февраль 18, 2010, 13:07 Цитировать А как сделать что бы по умолчанию был пустой QMap<QString,QString> Код
Название: Re: Конструкторы, параметры по умолчанию... Отправлено: catprog от Февраль 18, 2010, 14:11 А что значит в Вашем примере const и & ?
Сделал метод как показали, компилируется и так: Код: int test_method(int index,const QMap <QString,QString>& additional_params); Код: int test_method(int index,QMap <QString,QString> additional_params); но при вызове this->test_method(1); все равно требует второй параметр у метода, почему? Название: Re: Конструкторы, параметры по умолчанию... Отправлено: Павел_F. от Февраль 18, 2010, 14:23 Почитайте книжку по c/с++. Страуструб вам вполне подойдет.
Название: Re: Конструкторы, параметры по умолчанию... Отправлено: pastor от Февраль 18, 2010, 14:24 catprog, покажи объявление метода test_method
Название: Re: Конструкторы, параметры по умолчанию... Отправлено: BlackTass от Февраль 18, 2010, 14:28 впишите умолчальный параметр в объявлении метода (в хедере), а в определении уберите
Код: int test_method(int index,const QMap <QString,QString>& additional_params = QMap <QString,QString>()); Название: Re: Конструкторы, параметры по умолчанию... Отправлено: catprog от Февраль 18, 2010, 14:33 catprog, покажи объявление метода test_method Я и показал два варианта, вон строка из интерфейса класса и само описание метода, чтоб пост не раздувать метод ничего не делает.Название: Re: Конструкторы, параметры по умолчанию... Отправлено: catprog от Февраль 18, 2010, 14:34 впишите умолчальный параметр в объявлении метода (в хедере), а в определении уберите Код: int test_method(int index,const QMap <QString,QString>& additional_params = QMap <QString,QString>()); Так совсем не компилируется. Название: Re: Конструкторы, параметры по умолчанию... Отправлено: pastor от Февраль 18, 2010, 14:36 Название: Re: Конструкторы, параметры по умолчанию... Отправлено: catprog от Февраль 18, 2010, 14:53 Код: Running build steps for project test_proj... Название: Re: Конструкторы, параметры по умолчанию... Отправлено: BlackTass от Февраль 18, 2010, 15:08 выложи исходники
Название: Re: Конструкторы, параметры по умолчанию... Отправлено: pastor от Февраль 18, 2010, 15:20 #include <QMap> в class_name.h?
Название: Re: Конструкторы, параметры по умолчанию... Отправлено: catprog от Февраль 18, 2010, 15:32 Вот самый простой пример
http://rapidshare.com/files/352343524/test_proj.rar.html Не компилится. Цитировать #include <QMap> в class_name.h? Есть.Название: Re: Конструкторы, параметры по умолчанию... Отправлено: BlackTass от Февраль 19, 2010, 20:44 Рапида в ауте, пишет что серваки перегружены. Приаттач прямо к сообщению здесь.
Название: Re: Конструкторы, параметры по умолчанию... Отправлено: Igors от Февраль 19, 2010, 21:19 Код: int test_method(int index,const QMap <QString,QString>& additional_params); Код: typedef QMap <QString,QString> QSSMap; Название: Re: Конструкторы, параметры по умолчанию... Отправлено: lit-uriy от Февраль 19, 2010, 21:48 catprog, между символами ">" и "&" лучше сделать пробел
|