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

Сделать перегрузку - C++

Восстановить пароль Регистрация
 
Kellerman
 Аватар для Kellerman
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 34
04.06.2012, 13:32     Сделать перегрузку #1
есть программа создающая счет в банке с опеределённой суммой на счету. нужно сделать так, что бы поделив этот счет на какое то число (делитель), часть осталась на этом счету, остальные перешли на новый счет. задачу выполнить с помощью перегрузки. честно говоря в перегрузках ничего не понимаю, решал задачу без перегрузки, но преподу не понравилось.
возможно плохо объяснил суть задачи , вобщем пример
на счету 100 едениц, делитель 3 (получить делитель можно разными способами: вводом с клавиатуры, какой то формулой и т.д.). на первом счету оставить 33 еденицы, на новосозданный положить 67

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
#include "stdafx.h"
#include <iostream>
using namespace std;
class BankAccount
{
    char number[20];// номер счёта
    int size; // размер счета 
public:
    void OpenAccount(); // открытие счета
    void OutPut(); // вывод информации счёта
};
void BankAccount::OpenAccount()
{
    cout<<"Введите номер счета: ";cin>>number;
    cout<<"Сколько желаете внести?";cin>>size;
}
 
void BankAccount::OutPut()
{
    cout<<endl<<"Текущее состояние счёта: "<<endl;
    cout<<"Номер счета: "<<number<<endl;
    cout<<"Колчество средств на счёте: "<<size<<endl<<endl;
}
 
int main()
{
    setlocale(0,"Rus");
    BankAccount ac;
    ac.OpenAccount();
    ac.OutPut();
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Joke+R
 Аватар для Joke+R
41 / 41 / 3
Регистрация: 18.11.2011
Сообщений: 112
04.06.2012, 14:00     Сделать перегрузку #2
Цитата Сообщение от Kellerman Посмотреть сообщение
на счету 100 едениц, делитель 3 (получить делитель можно разными способами: вводом с клавиатуры, какой то формулой и т.д.). на первом счету оставить 33 еденицы, на новосозданный положить 67
перегрузка есть две или более процедур выполняющие разные действия но с одинаковым именем... Здесь это можно сделать с помощью одной процедуры... что перегружать то?
Kellerman
 Аватар для Kellerman
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 34
04.06.2012, 14:15  [ТС]     Сделать перегрузку #3
что перегружать сам не знаю.
я так понял через

C++
1
operator/()
Joke+R
 Аватар для Joke+R
41 / 41 / 3
Регистрация: 18.11.2011
Сообщений: 112
04.06.2012, 14:44     Сделать перегрузку #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
#include "stdafx.h"
#include <iostream>
 
struct res
{
    int first;
    int second;
};
 
int delitel = 3;
 
void operator>> (int const &a, res &b)
{
    b.first = a / delitel;
    b.second = a - b.first;
}
 
int main()
{
    res bank;
    int money = 100;
    money>>bank;
    return 0;
}
Kellerman
 Аватар для Kellerman
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 34
04.06.2012, 15:26  [ТС]     Сделать перегрузку #5
прокоментируйте пожалуйста, кое чего не догоняю.

это смещение на 2 байта вправо?
Цитата Сообщение от Joke+R Посмотреть сообщение
operator>>
и это что?
Цитата Сообщение от Joke+R Посмотреть сообщение
money>>bank;
Joke+R
 Аватар для Joke+R
41 / 41 / 3
Регистрация: 18.11.2011
Сообщений: 112
04.06.2012, 16:47     Сделать перегрузку #6
стандартный оператор >> это смещение но здесь он перегружен... в данном случае это деление на две части, просто с его перегружать было удобнее чем /

money>>bank;
money - это количество денежных единиц(из вашего примера это 100)
bank - это результат разбиения money(100 на 33(first) и 67(second)), делитель объявлен глобально...
Kellerman
 Аватар для Kellerman
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 34
04.06.2012, 18:14  [ТС]     Сделать перегрузку #7
просто такой операции я раньше не видел
Цитата Сообщение от Joke+R Посмотреть сообщение
money>>bank;
а не могли бы объяснить как работает с /? это уже из интереса
Joke+R
 Аватар для Joke+R
41 / 41 / 3
Регистрация: 18.11.2011
Сообщений: 112
04.06.2012, 18:35     Сделать перегрузку #8
не знаю... у меня не получилось

Добавлено через 4 минуты
Цитата Сообщение от Kellerman Посмотреть сообщение
просто такой операции я раньше не видел
Сообщение от Joke+R
money>>bank;
потому что ее нет.. я же переопределил ее... вообще это сдвиг вправо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2012, 20:34     Сделать перегрузку
Еще ссылки по теме:

Обнаружить перегрузку кучи C++
C++ написать перегрузку функций
Разработать перегрузку функций C++

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

Или воспользуйтесь поиском по форуму:
Kellerman
 Аватар для Kellerman
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 34
04.06.2012, 20:34  [ТС]     Сделать перегрузку #9
меня интересует как это все засунуть в мою программу

Добавлено через 13 минут
может еще кто то чем то поможет)
Yandex
Объявления
04.06.2012, 20:34     Сделать перегрузку
Ответ Создать тему
Опции темы

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