Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ArtMaster
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
#1

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

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

Привет, как можно реализовать?
http://www.cyberforum.ru/cpp-beginners/thread544871.html
Нужно чтобы функция в зависимости от условий возвращала string или double
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 02:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужно чтобы функция в зависимости от условий возвращала string или double (C++):

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

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

Как сделать так, чтобы функция rand() возвращала разные значения
Добрый вечер, как можно в visual studio в цикле каждый раз задавать новые...

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

Подобрать значения массива так, чтобы функция equal(pbegin(), pend(), qbegin(), super) возвращала истину
2. Дан отрывок кода. bool super(int a, int b) { return a + b == 0;...

16
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
25.12.2012, 02:22 #2
Красиво никак...
Разные задачи - значит должны быть разные ф-ции.
0
ArtMaster
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 02:29  [ТС] #3
а можно через template?
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
25.12.2012, 02:30 #4
Говорю задача не правильно поставленная
0
ArtMaster
26 / 24 / 8
Регистрация: 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;
}
Ну вот где-то так?!
0
Croessmah
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 02:43 #6
Цитата Сообщение от ArtMaster Посмотреть сообщение
Ну вот где-то так?!
И зачем такое необходимо?
0
ArtMaster
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 02:57  [ТС] #7
ну говорю же нужно в зависимости от условий вернуть или строковую переменную или с точкой
0
Croessmah
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:01 #8
Цитата Сообщение от ArtMaster Посмотреть сообщение
ну говорю же нужно в зависимости от условий вернуть или строковую переменную или с точкой
Зачем? Не понятна мотивация для написания такого рода издевательства.
0
ArtMaster
26 / 24 / 8
Регистрация: 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
0
Croessmah
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 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;
0
ArtMaster
26 / 24 / 8
Регистрация: 27.10.2012
Сообщений: 74
25.12.2012, 03:14  [ТС] #11
возвращает!
0
Croessmah
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:16 #12
Цитата Сообщение от ArtMaster Посмотреть сообщение
возвращает!
Зачем? Задайте себе этот вопрос. Вы не назвали не одной причины для этого.
Можете вернуть указатель на void, а потом приводить его к определенному типу. Но опять же получится, что вызывающий код должен знать, значение какого типа возвращено, чтобы верно преобразовать указатель
0
Avazart
Эксперт С++
7674 / 5583 / 541
Регистрация: 10.12.2010
Сообщений: 25,044
Записей в блоге: 17
25.12.2012, 03:19 #13
борьба с мельницами
0
Croessmah
++Ͻ
14146 / 8071 / 1512
Регистрация: 27.09.2012
Сообщений: 19,905
Записей в блоге: 3
Завершенные тесты: 1
25.12.2012, 03:24 #14
Посмотрите в сторону boost'a (any, variant)
0
silent_1991
Эксперт С++
5007 / 3065 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 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;
}
Без явной перегрузки (чтобы в коде была только одна версия функции) мне не представляется возможным.
0
-=ЮрА=-
Заблокирован
Автор FAQ
29.12.2012, 12:43 #16
Цитата Сообщение от ArtMaster Посмотреть сообщение
Привет, как можно реализовать?
Нужно чтобы функция в зависимости от условий возвращала string или double
Цитата Сообщение от ArtMaster Посмотреть сообщение
а можно через template?
в принципе попробуй использовать перегрузку шаблонов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <string>
#include <iostream>
using namespace std;
 
template <class T>
string Concatinate(string param, T add)
{
    return param + add;
}
 
template <class T>
double Concatinate(double param, T add)
{
    return param + add;
}
 
int main()
{
    string sParam = "test";
    double dParam = 7;
    cout<<"sParam = "<<sParam<<endl;
    cout<<"dParam = "<<dParam<<endl;
    cout<<"\ttemplate Concatinate"<<endl;
    cout<<"sParam = "<<Concatinate(sParam, " of program")<<endl;
    cout<<"dParam = "<<Concatinate(dParam, 4)<<endl;
    return 0;
}
0
Миниатюры
Нужно чтобы функция в зависимости от условий возвращала string или double  
-=ЮрА=-
Заблокирован
Автор FAQ
29.12.2012, 12:48 #17
Будет интересное отображение на экране
C++
1
cout<<"sParam*= "<<Concatinate(sParam, char(4))<<endl;
0
29.12.2012, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2012, 12:48
Привет! Вот еще темы с решениями:

Сделать так, чтобы функция возвращала как целые, так и дробные значения
Задача: нужно найти среднее арифметическое чисел в одномерном массиве разных...

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

Что нужно знать, чтобы создать класс String?
Здравствуйте! Подскажите, про какие функции и разделы прочитать, чтобы сделать...

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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