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

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

Войти
Регистрация
Восстановить пароль
 
 
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
#1

Нужно чтобы функция в зависимости от условий возвращала string или double - C++

25.12.2012, 02:17. Просмотров 605. Ответов 16
Метки нет (Все метки)

Привет, как можно реализовать?
Нужно чтобы функция в зависимости от условий возвращала string или double
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 02:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно чтобы функция в зависимости от условий возвращала string или double (C++):

Что нужно изменить ,чтобы функция с методом Гаусса возвращала массив? - C++
Вот пример кода: double gaus(int n, double c, double d) { int k,k1,kn,i,j; vector<double> t; double temp; for (k=1;k<n-1;++k) ...

Как сделать, чтобы функция возвращала массив? - C++
Доброго времени суток! Есть функция которая находит значения 4х элементов массива. как сделать чтобы она возвращала сразу весь массив?

Сделать так, чтобы функция возвращала параметр - C++
В общем, есть 3 матрицы, выведение их на экран и перемножение, сделанное через класс. Функции mult1 и mult2 умножают и выводят сразу на...

Как сделать так, чтобы функция rand() возвращала разные значения - C++
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые рандомные значения перменной, к примеру for(int i=0;i<10;i++) ...

Работа с классами (сделать, чтобы функция возвращала массив, получаемый суммированием двух входных) - C++
В программу передаю 2 массива из пяти чисел. После выполнения функции getAM хочу, чтобы она возвращала массив, получаемый суммированием...

Сделать так, чтобы функция возвращала как целые, так и дробные значения - C++
Задача: нужно найти среднее арифметическое чисел в одномерном массиве разных типов. В main() у пользователя спрашивается размер...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
25.12.2012, 02:22 #2
Красиво никак...
Разные задачи - значит должны быть разные ф-ции.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 02:29  [ТС] #3
а можно через template?
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
25.12.2012, 02:30 #4
Говорю задача не правильно поставленная
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 02:38  [ТС] #5
Спасибо)

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
string a="0";
double b=1;
 
fun(){
if(a=='0') return a;
if(b==1) return b;
}
Ну вот где-то так?!
Croessmah
Модератор
Эксперт CЭксперт С++
13154 / 7417 / 831
Регистрация: 27.09.2012
Сообщений: 18,254
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 02:43 #6
Цитата Сообщение от ArtMaster Посмотреть сообщение
Ну вот где-то так?!
И зачем такое необходимо?
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 02:57  [ТС] #7
ну говорю же нужно в зависимости от условий вернуть или строковую переменную или с точкой
Croessmah
Модератор
Эксперт CЭксперт С++
13154 / 7417 / 831
Регистрация: 27.09.2012
Сообщений: 18,254
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:01 #8
Цитата Сообщение от ArtMaster Посмотреть сообщение
ну говорю же нужно в зависимости от условий вернуть или строковую переменную или с точкой
Зачем? Не понятна мотивация для написания такого рода издевательства.
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 03:06  [ТС] #9
C++
1
2
3
4
5
6
7
8
class var{
public:
    string name;
    string type;
    string expr1;
    double expr2;
        /*Тут функция*/
};
Если type= string то выводить expr1, если нет то expr2
Croessmah
Модератор
Эксперт CЭксперт С++
13154 / 7417 / 831
Регистрация: 27.09.2012
Сообщений: 18,254
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:10 #10
судя по
Цитата Сообщение от ArtMaster Посмотреть сообщение
Если type= string то выводить expr1, если нет то expr2
получается
C++
1
2
3
4
if(type=="string")
   cout<<expr1;
else
   cout<<expr2;
ArtMaster
26 / 24 / 3
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 03:14  [ТС] #11
возвращает!
Croessmah
Модератор
Эксперт CЭксперт С++
13154 / 7417 / 831
Регистрация: 27.09.2012
Сообщений: 18,254
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:16 #12
Цитата Сообщение от ArtMaster Посмотреть сообщение
возвращает!
Зачем? Задайте себе этот вопрос. Вы не назвали не одной причины для этого.
Можете вернуть указатель на void, а потом приводить его к определенному типу. Но опять же получится, что вызывающий код должен знать, значение какого типа возвращено, чтобы верно преобразовать указатель
Avazart
Эксперт С++
7152 / 5329 / 278
Регистрация: 10.12.2010
Сообщений: 23,584
Записей в блоге: 17
25.12.2012, 03:19 #13
борьба с мельницами
Croessmah
Модератор
Эксперт CЭксперт С++
13154 / 7417 / 831
Регистрация: 27.09.2012
Сообщений: 18,254
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:24 #14
Посмотрите в сторону boost'a (any, variant)
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
29.12.2012, 09:34 #15
В зависимости от условий - это как-то так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
class StringRet { } string_ret;
class IntRet { } int_ret;
 
std::string func(StringRet)
{
    return "Hello";
}
 
int func(IntRet)
{
    return 42;
}
 
int main()
{
    std::cout << func(string_ret) << std::endl;
    std::cout << func(int_ret) << std::endl;
    
    return 0;
}
Без явной перегрузки (чтобы в коде была только одна версия функции) мне не представляется возможным.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 09:34
Привет! Вот еще темы с ответами:

Господа, нужно выбрать double-архив из строки string(С++/С) - C++
Есть строка формата: string str=&quot;R 7.2 531.804 119.479 0.477472 175.792 7.22212 -64.2461 0 79.5401 -0.600769 ...

Что нужно знать, чтобы создать класс String? - C++
Здравствуйте! Подскажите, про какие функции и разделы прочитать, чтобы сделать данное задание: &quot;Разработать класс String определив для...

Как сделать так что бы функция возвращала строку - C++
Как сделать так что бы функция возвращала строку

Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива - C++
Есть программа #include &lt;iostream&gt; #include &lt;algorithm&gt; const int N = 5; int handSet(void) { int a; std::cout...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.12.2012, 09:34
Ответ Создать тему
Опции темы

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