![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 07.01.2012
Сообщений: 3
|
![]()
Проблема такая,
нужно посчитать сумму платежей с указанной целью. То есть допустим я в поле "введите цель платежа" ввожу какуюнибудь цель. Дальше как я понял нужно найти все платежи с таким названием ну и потом посчитать их сумму... На теории легко, а как доходит до практики меня тупит, незнаю как это записать... Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
![]()
class Pay{
public: string PaymentNumber; double Amount; string PurposeOfPayment; friend istream& operator>>(istream &ist, Pay&P){ ist>>P.PaymentNumber; ist>>P.Amount; ist>>P.PurposeOfPayment; return ist; }; }; void main(){ string NugnayaCeL; // цель по которой ищешь сумму; cin>>NugnayaCeL; Pay Pa[n]; double SUM=0; for(int i=0; i<n; i++){ cin>>Pa[i]; } for(int i=0; i<n; i++){ if (Pa[i].PurposeOfPayment=NugnayaCeL) {SUM=SUM+Pa[i].Amount} } Умею работать только с классами, чем смог тем помог ![]() Я это все дело тут написал, у себя не отлаживал, могут быть ошибки( |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Последний раз редактировалось _Bers; 07.01.2012 в 22:00. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
![]()
Создал проект, отладил. все работает.
Код:
В первом месте небыло ошибки, можно перегружать операции работы с потоками внутри класса и &P тоже можно делать, кажется... Оо |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Я походу сам туплю. Видимо я не до конца понимаю смысл ключевого слова friend
Рассмотрим пример: Код:
Вопрос: являются ли операторы членами класса, или нет? И если они не являются членами класса, то в какой области видимости они существуют? Создаётся впечатление, что несмотря на то, что объявляются и реализуются внутри класса, все равно компилятор сам поместит эти функции в глобальную область видимости, несмотря на то, что отсутствует ключевое слово static |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
![]()
На сколько я знаю friend делает эту функцию видимой для членов класса всегда и везде.
Но вообщем это скорее догадки. а еще я не видел чтобы так обращались к << >> и пр. Код:
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
pinkiller
Создал проект, отладил. все работает. friend istream& operator>>(istream &ist, Pay&P){ // нет тут ошибки о___О И не будет. Просто _Bers, по-видимому, кроме незнания ключевого слова static, также не в курсе того, что объявление дружественной функции может быть также определением, поэтому пытается запутать тебя.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
Может ли Rififi сказать точно, является ли Код:
А если является, тогда как понимать эту ошибку компиляции: Код:
|
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Ниже представленный код наглядно демонстрирует тот факт, что ключевое слово friend сообщает компилятору о том, что функция является другом класса, но не членном этого класса. А так же, демонстрирует тот факт, что компилятор расположит дружественную функцию в глобальной области видимости
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности | kris__tina | БД в Delphi | 1 | 09.06.2011 15:31 |
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, | Шпунюся | Помощь студентам | 1 | 16.12.2010 21:02 |
Создание пустой строки и копирование в неё содержимое предыдущей строки | Gvaridos | Microsoft Office Excel | 2 | 29.10.2010 13:33 |
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. | Александе еть я | Общие вопросы C/C++ | 5 | 13.04.2010 20:54 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |