1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

Функция С Переменным Числом Параметров Зараннее Неизвестного Типа

Тема в разделе "Вопросы новичков и не только", создана пользователем Meridian, 24 ноя 2014.

  1. Meridian

    Meridian New Member

    Репутация:
    0
    Регистрация:
    24 ноя 2014
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, коллеги!
    Прошу помочь начинающему в С++. Есть функция с переменным числом параметров заранеее неизвестного типа.
    Внутри начинаю перебирать параметры по ссылке и на первом же неопределенном получаю проблему с типом float.
    Вот код:

    Код:
    #include "stdafx.h"
    #include <iostream>
    #include <clocale>
    
    using namespace std;
    
    template <class ttype>
    void testfun(ttype var1, ttype var2, ...)
    {
    ttype lvar1 = var1;
    ttype lvar2 = var2;
    cout << "Локальные переменные lvar - " << lvar1 << ", lvar2 -" << lvar2 << endl;
    
    ttype *ptr = &var1;
    cout << "Через ссылку первый аргумент " << ttype(*ptr) << endl;
    
    ptr++;
    cout << "Через ссылку второй аргумент " << ttype(*ptr) << endl;
    
    ptr++;
    cout << "Через ссылку третий аргумент " << ttype(*ptr) << endl;
    }
    
    void main()
    {
    setlocale(LC_ALL, "Russian");
    
    float a, b, c;
    
    a = 0.1;
    b = 0.2;
    c = 0.3;
    
    testfun(a, b, c);
    
    system("pause");
    }
    Вывод:
    Локальные переменные lvar - 0.1, lvar2 -0.2
    Через ссылку первый аргумент 0.1
    Через ссылку второй аргумент 0.2
    Через ссылку третий аргумент 2
    Для продолжения нажмите любую клавишу . . .

    Третий параметр должен принимать значение 0.3, но это не так. Если на вход подавать переменные
    типа double, то проблемы нет. Подозреваю, что проблема кроется в размерности типа float, но не могу
    ее преодолеть. Help.
     
Загрузка...

Поделиться этой страницей