void SomeFunc(SIZE szArg = {10, 10}) // Ошибка !!!
{
}
Можно ли сделать функцию с параметром по умолчанию типа SIZE?
Код:
void SomeFunc(SIZE szArg(10, 10))
{
}
Цитата: Matush
например:
Код:
void SomeFunc(SIZE szArg = {10, 10}) // Ошибка !!!
{
}
{
}
Что за ошибка и под чем и на чем пишешь??
Так не пробовал:
Код:
void SomeFunc(SIZE szArg = new SIZE(10, 10))
{
...
}
{
...
}
Цитата: 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=1]error C2661: 'tagSIZE::tagSIZE' : no overloaded function takes 2 arguments[/SIZE]
[/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]
[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};
...
SIZE szTmp = {10, 10};
...
Цитата: webfashion
Можно попробовать так (SIZE инициализируется двумя параметрами):
void SomeFunc(SIZE szArg(10, 10))
{
}
void SomeFunc(SIZE szArg(10, 10))
{
}
[SIZE=1]error C2059: syntax error : 'constant'[/SIZE]
Но зато по этой ошибке я нашел в МСДНе, что разрешение моего вопроса это и есть создание конструктора. Так что наверное тема закрыта, если никто чего другого не предложит.
Цитата:
void SomeFunc(SIZE szArg = new SIZE(10, 10))
Про "new" - это типа шутка такая? Не пойдёт по-либому.
можно сделать так
Код:
const SIZE cszTmp = {10, 10}; // Создаём константу
...
void SomeFunc(SIZE szArg = cszTmp)
// Указываем константу как "значение по-умолчанию"
...
void SomeFunc(SIZE szArg = cszTmp)
// Указываем константу как "значение по-умолчанию"
Хотя, конечно же, объявление соответствующего конструктора легко решает подобные проблемы
Цитата: el scorpio
Про "new" - это типа шутка такая? Не пойдёт по-либому.
Не шутка.. загон!!:) Виноват, провинился!!
Код:
const SIZE cszTmp = {10, 10}; // Создаём константу
Спасибо, я про это не подумал.