Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
#1

Параметры по умолчанию в функции - C++

26.03.2013, 14:52. Просмотров 293. Ответов 2
Метки нет (Все метки)

Всем привет.
Есть такой класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <typename T> class MyClass
{
public:
    MyClass(T *_beg, T *_en):beg(_beg),en(_en) {}
    T* begin() { return this->beg; }
    T* end() { return this->en; }
    void print (T* = begin(),T* = end()) const;
private:
    T *beg;
    T *en;
}MyObj;
 
template <typename T> void MyClass<T>::print(T *_beg,T *_en) const
{
    for(; _beg!=_en; ++_beg)
        cout<<*_beg<<" ";
}
Хочу чтобы MyObj.print(); (то есть без параметров) вызывалась с параметрами beg и en данного объекта, то есть
C++
1
2
3
void print (T* = begin(),T* = end()) const;
или 
void print (T* = beg,T* = en) const;
При первом варианте выдает пишет, что не может вызвать функцию без объекта, а при второй - ошибку выдает в объявлении закрытых членов beg и en.

Пробовал еще вот так:
C++
1
    void print (T* = this->begin(),T* = this->end()) const;
Но не помогло.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2013, 14:52     Параметры по умолчанию в функции
Посмотрите здесь:

Аргументы функции по умолчанию C++
Параметры функции по умолчанию C++
Параметры по умолчанию в С. C++
C++ Аргументы функции по умолчанию
ODBC, параметры по умолчанию C++
C++ Аргументы функции по умолчанию
C++ Указатель на функцию и параметры по умолчанию
Параметры шаблонов функции по умолчанию C++
Оптимизация. Перегрузки vs параметры по умолчанию C++
C++ Параметры функции по умолчанию
Параметры функции C++
C++ Параметры по-умолчанию в виртуальных функциях

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4387 / 3230 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.03.2013, 15:06     Параметры по умолчанию в функции #2
Параметры по умолчанию для функций должны быть известны в момент компиляции.
В Вашем случае подойдет перегрузка функции print:
C++
1
2
3
void print (T* b, T* e) const; // Задаются оба значения
void print (T* b ) const; // Задается только начало, конец - по умолчанию
void print () const; // Всё по умолчанию
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
26.03.2013, 19:31  [ТС]     Параметры по умолчанию в функции #3
Я понял. Спасибо. Можно закрывать.
Yandex
Объявления
26.03.2013, 19:31     Параметры по умолчанию в функции
Ответ Создать тему
Опции темы

Текущее время: 12:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru