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

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

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

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

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

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

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

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

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

16
Avazart
Эксперт С++
7737 / 5647 / 550
Регистрация: 10.12.2010
Сообщений: 25,495
Записей в блоге: 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
Эксперт С++
7737 / 5647 / 550
Регистрация: 10.12.2010
Сообщений: 25,495
Записей в блоге: 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
++Ͻ
14743 / 8424 / 1598
Регистрация: 27.09.2012
Сообщений: 20,720
Записей в блоге: 2
Завершенные тесты: 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
++Ͻ
14743 / 8424 / 1598
Регистрация: 27.09.2012
Сообщений: 20,720
Записей в блоге: 2
Завершенные тесты: 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
++Ͻ
14743 / 8424 / 1598
Регистрация: 27.09.2012
Сообщений: 20,720
Записей в блоге: 2
Завершенные тесты: 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
++Ͻ
14743 / 8424 / 1598
Регистрация: 27.09.2012
Сообщений: 20,720
Записей в блоге: 2
Завершенные тесты: 1
25.12.2012, 03:16 12
Цитата Сообщение от ArtMaster Посмотреть сообщение
возвращает!
Зачем? Задайте себе этот вопрос. Вы не назвали не одной причины для этого.
Можете вернуть указатель на void, а потом приводить его к определенному типу. Но опять же получится, что вызывающий код должен знать, значение какого типа возвращено, чтобы верно преобразовать указатель
0
Avazart
Эксперт С++
7737 / 5647 / 550
Регистрация: 10.12.2010
Сообщений: 25,495
Записей в блоге: 17
25.12.2012, 03:19 13
борьба с мельницами
0
Croessmah
++Ͻ
14743 / 8424 / 1598
Регистрация: 27.09.2012
Сообщений: 20,720
Записей в блоге: 2
Завершенные тесты: 1
25.12.2012, 03:24 14
Посмотрите в сторону boost'a (any, variant)
0
silent_1991
Эксперт С++
5010 / 3070 / 270
Регистрация: 11.11.2009
Сообщений: 7,044
Завершенные тесты: 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

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

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

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


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

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

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