Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли сделать функцию с параметром по умолчанию типа SIZE?

292
06 января 2007 года
Matush
726 / / 14.01.2004
например:
 
Код:
void SomeFunc(SIZE szArg = {10, 10}) // Ошибка !!!
{
}
22K
06 января 2007 года
webfashion
13 / / 06.01.2007
Можно попробовать так (SIZE инициализируется двумя параметрами):

void SomeFunc(SIZE szArg(10, 10))
{
}
263
06 января 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Matush
например:
 
Код:
void SomeFunc(SIZE szArg = {10, 10}) // Ошибка !!!
{
}


Что за ошибка и под чем и на чем пишешь??
Так не пробовал:

 
Код:
void SomeFunc(SIZE szArg = new SIZE(10, 10))
{
   ...
}
292
06 января 2007 года
Matush
726 / / 14.01.2004
Цитата: koltaviy
Что за ошибка и под чем и на чем пишешь??
Так не пробовал:
 
Код:
void SomeFunc(SIZE szArg = new SIZE(10, 10))
{
   ...
}



Да сорри, провтыкал, пишу на C++ (MVS2005).

 
Код:
void SomeFunc(SIZE szArg = {10, 10}); //- [SIZE=1]error C2059: syntax error : '{' //  [/SIZE]

оно и понятно, компилятор вообще не может вкурить что творится.

 
Код:
[SIZE=1][SIZE=2]void SomeFunc(SIZE szArg = SIZE(10, 10)); //- [/SIZE]
[SIZE=1][SIZE=1]error C2661: 'tagSIZE::tagSIZE' : no overloaded function takes 2 arguments[/SIZE]
[/SIZE][/SIZE]
[SIZE=1][SIZE=2]структура не имеет дефолтного конструктора.[/SIZE][/SIZE]

к примеру такой код работает ок:
 
Код:
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]struct[/COLOR][/SIZE][SIZE=2][COLOR=#000000] MYSIZE[/COLOR]
[COLOR=black]{[/COLOR]
[/SIZE][SIZE=2][COLOR=#0000ff]public[/COLOR][/SIZE][SIZE=2][COLOR=#000000]:[/COLOR]
[COLOR=black]MYSIZE(size_t icx, size_t icy): cx(icx), cy(icy){}[/COLOR]
[COLOR=black]size_t cx, cy;[/COLOR]
[COLOR=black]};[/COLOR]
 
[/SIZE][/COLOR][/SIZE][SIZE=2]void SomeFunc(MYSIZE szArg = MYSIZE(10, 10));[/SIZE]


Потому собственно и мой вопрос как такое провернуть с существующимим структурами. Ведь к примеру такая запись работает:
 
Код:
...
SIZE szTmp = {10, 10};
...
292
06 января 2007 года
Matush
726 / / 14.01.2004
Цитата: webfashion
Можно попробовать так (SIZE инициализируется двумя параметрами):

void SomeFunc(SIZE szArg(10, 10))
{
}


[SIZE=1]error C2059: syntax error : 'constant'[/SIZE]

Но зато по этой ошибке я нашел в МСДНе, что разрешение моего вопроса это и есть создание конструктора. Так что наверное тема закрыта, если никто чего другого не предложит.

309
08 января 2007 года
el scorpio
1.1K / / 19.09.2006
Цитата:
void SomeFunc(SIZE szArg = new SIZE(10, 10))


Про "new" - это типа шутка такая? Не пойдёт по-либому.

можно сделать так

 
Код:
const SIZE cszTmp = {10, 10}; // Создаём константу
...
void SomeFunc(SIZE szArg = cszTmp)
// Указываем константу как "значение по-умолчанию"

Хотя, конечно же, объявление соответствующего конструктора легко решает подобные проблемы
263
08 января 2007 года
koltaviy
816 / / 16.12.2004
Цитата: el scorpio
Про "new" - это типа шутка такая? Не пойдёт по-либому.


Не шутка.. загон!!:) Виноват, провинился!!

292
08 января 2007 года
Matush
726 / / 14.01.2004
 
Код:
const SIZE cszTmp = {10, 10}; // Создаём константу


Спасибо, я про это не подумал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог