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

перегрузка - C++

Восстановить пароль Регистрация
 
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
12.04.2013, 12:08     перегрузка #1
1 С помощью механизма перегрузки функций реализовать функции для нахождения суммы:
1) двух чисел (результат – число);
2) двух строк (результат – строка);
3) строки и числа (из строки «сделать» число и сложить со вторым аргументом);
4) числа и строки (из числа получить строку и сложить строки).
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int Func(int a);
int Func(int a,int b);
int Func(int a,int b,int c);
 
 
 
int main(int argc, char *argv[])
{
 
int a = 5 ;int b = 8 ; int c = 10 ;
 
cout<<Func(a)<<"\n"; 
cout<<Func(a,b)<<"\n";
cout<<Func(a,b,c)<<"\n";
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
 
 
int Func(int a){
    
    return a+a;
    
}
 
int Func(int a,int b){
    
    return a+b;
    
}
 
int Func(int a,int b,int c){
    
 
    return a+b+c;
    
}
как остальное доработать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2013, 12:08     перегрузка
Посмотрите здесь:

C++ C++ Перегрузка
C++ Перегрузка << и >>
Перегрузка в c++ C++
C++ перегрузка []
Перегрузка () C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21437 / 10222 / 1666
Регистрация: 12.02.2012
Сообщений: 17,098
12.04.2013, 14:51     перегрузка #2
Вот:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <string.h>
#include <iostream.h>
#include <stdlib.h>
 
int foo(int a, int b)
{
    return a+b;
}
 
char* foo(char *a, char *b)
{
    int la=strlen(a), lb=strlen(b);
    char *r = new char[la+lb];
    strcpy(r,a);
    strcat(r,b);
    return r;
}
 
int foo(char *a, int b)
{
    return atoi(a)+b;
}
 
char* foo(int a, char *b)
{
    char S[20];
    int lb=strlen(b);
    char *r;
    _itoa(a,S,10);
    r=new char[lb+strlen(S)];
    strcpy(r,S);
    strcat(r,b);
    return r;
 
}
 
int main(int argc, char* argv[])
{
    cout << foo(5,6) <<endl ;
    cout << foo("fff","ooo") << endl;
    cout << foo("123",5) << endl;
    cout << foo(123,"ttt") << endl;
    return 0;
}
Но сдается мне, что в C нет перегрузки функций. Только в C++
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
12.04.2013, 16:40  [ТС]     перегрузка #3
почему в этой строке пишет ошибка

Добавлено через 29 секунд
_itoa(a,S,10)-вот в этой как исправить
Catstail
Модератор
 Аватар для Catstail
21437 / 10222 / 1666
Регистрация: 12.02.2012
Сообщений: 17,098
12.04.2013, 17:40     перегрузка #4
В какой системе работаешь?
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
15.04.2013, 08:51  [ТС]     перегрузка #5
Борланд си++
Catstail
Модератор
 Аватар для Catstail
21437 / 10222 / 1666
Регистрация: 12.02.2012
Сообщений: 17,098
15.04.2013, 09:34     перегрузка #6
DOS?
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
15.04.2013, 09:49  [ТС]     перегрузка #7
вроде бы.
Catstail
Модератор
 Аватар для Catstail
21437 / 10222 / 1666
Регистрация: 12.02.2012
Сообщений: 17,098
15.04.2013, 10:34     перегрузка #8
тогда убери подчерк. Функция itoa
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
15.04.2013, 11:00  [ТС]     перегрузка #9
вот убрала пробел сработала. только результат тестирования какой то несовсем понятный.
вот нажимаю на компиляцию, появляется цифра 11
ввожу 1 выводит fff000, ввожу 2 выводит 128
ввожу 4 выводит 123ttt
такой должен быть результат
Catstail
Модератор
 Аватар для Catstail
21437 / 10222 / 1666
Регистрация: 12.02.2012
Сообщений: 17,098
15.04.2013, 11:31     перегрузка #10
Все так и должно быть:

5+6=11 (сложение чисел, результат число)
"fff"+"ooo" = "fffooo" (сложение строк, результат строка)
"123"+5 = 128 (сложение числовой строки с числом, результат число)
123+"fff"="123fff" (сложение числа со строкой, результат строка).

Все - по заданию. Что не нравится?
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
15.04.2013, 12:00  [ТС]     перегрузка #11
просто у меня 5+6 вообще не появилось, сразу 11 из-за этого. можешь свой скрин этого результата тестирования как он у тебя пожалуйста

Добавлено через 17 минут
вот в чем ошибка я добавила чтоб отображалась на экране результат cin>>foo(5,6), сделала также для остальных они не выводятся на экран, только выводятся после того как я нажму какую нибудь цифру, как исправить
Catstail
Модератор
 Аватар для Catstail
21437 / 10222 / 1666
Регистрация: 12.02.2012
Сообщений: 17,098
15.04.2013, 12:22     перегрузка #12
Цитата Сообщение от ALINA4 Посмотреть сообщение
просто у меня 5+6 вообще не появилось
- а с чего бы им появляться? Ты в код-то загляни... Там сразу печатается результат.

Цитата Сообщение от ALINA4 Посмотреть сообщение
вот в чем ошибка
- и никакой ошибки.

Чтобы экран не исчезал, перед return в функции main вставь: system("PAUSE");
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
15.04.2013, 13:53  [ТС]     перегрузка #13
нет я имела ввиду другое
cout << foo(5,6) <<endl ;
сin>>foo(5,6);
cout << foo("fff","ooo") << endl;
сin>>foo(""fff","ooo"");
cout << foo("123",5) << endl;

вот я вставила после каждого сin вывод на экран вот 11 выходит сразу а а остальное нет почему
сin>>foo("123",5);
cout << foo(123,"ttt") << endl;
сin>>foo(123,"ttt");
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
15.04.2013, 13:57     перегрузка #14
ALINA4, cin - это для ввода. Читать можно в переменные, а не в функцию которая возвращает int.
Цитата Сообщение от ALINA4 Посмотреть сообщение
сin>>foo(5,6);
Что Вы ожидаете получить, написав такое?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 14:15     перегрузка
Еще ссылки по теме:

перегрузка -- C++
Перегрузка >> C++
C++ Перегрузка ++ и --

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

Или воспользуйтесь поиском по форуму:
ALINA4
4 / 4 / 0
Регистрация: 10.12.2012
Сообщений: 115
15.04.2013, 14:15  [ТС]     перегрузка #15
смотрите результат должен же сразу отображаться на экране также без ввода каких либо данных. почему сложение сразу появилось а для остальных мне нужно вводить какую любую цифру чтоб появилось. или так должно быть

Добавлено через 1 минуту
вот нажимаю на компиляцию программы
результат тестирования сначала 11-сразу на экране
а остальных значений нет
они появляются после того как я ввожу что то

Добавлено через 4 минуты
все разобралась спасибо большое

Добавлено через 24 секунды
извините за многие мои тупые вопросы, что то сегодня торможу конкретно

Добавлено через 11 секунд
спасибочки больщущеее
Yandex
Объявления
15.04.2013, 14:15     перегрузка
Ответ Создать тему
Опции темы

Текущее время: 12:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru