СЖ
Светлана Жильцова

C++ Функция с произвольным числом параметров



пишет ошибку:

ошибка: C2360: пропуск инициализации "ival" из-за метки "case"
..\consQT\main.cpp(53): см. объявление "ival"
--------------------------
среда QT C++ библа 4.8.4 статическая сборка. . вро де бы все библы подключаю .. какие только могли бы понадобиться .. а сам код из примера на сайте .. библы там то же указаны.

Сергей Нестеренко
Сергей Нестеренко

Создавай переменную в фигурных скобках, switch их не любит.
А вообще произвольное число аргументов - зло. Особенно в плюсах.

Ля
Ляззата

Ну так объяви переменную до switch, делов то.

ЮТ
Юлия Тищенко

Qt тут не при чем. Объявление переменной лучше вынести за switch. Чисто теоретический пример:

switch( expr )
{
case value1:
int var = 333;

case value2:
...
break;

case value3;
...
break;
}

То есть мы можем оказаться в case val2 двумя способами: expr == value1 (допустим, там не вызывается break) и expr == value2. Но при этом в первом случае в метке value2 переменная var будет определена и инициализирована, а во втором случае - нет.

Правильно выше сказали о нежелательности функций с переменным числом аргументов. В С++ в этом случае лучше справляется перегрузка или передача массивов объектов.

Похожие вопросы
Помогите написать функцию на чистом C, которая принимает в качестве параметра целое число и возвращает двухмерный массив
C#. Написать функцию
C#. Написать функцию с переменным числом параметров
C# методы - использование параметров
Подскажите функцию в C ++
C++ Параметры функции через шаблоны
C++ функция textattr
Параметры функции в javascript
конструктор с параметрами c++
(C#) Как создать массив - 2 столбика на n рядов (n - произвольное число) ?