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

Перегрузка операторов. Инкапсуляция. Сделать так, чтобы оператор >> находил разницу между датами. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сделать выборку из списка студентов, имеющих задолженность http://www.cyberforum.ru/cpp-beginners/thread888276.html
Помогите! Очень срочно! Нужно написать программу: 1. Сделать выборку из общего списка студентов дневной формы обучения, имеющих задолженность по оплате за обучение в сумме 123$ Желательно с пояснениями!!))) Заранее Спасибо)
C++ Блок схема Здравствуйте, помогите пожалуйста, какая из двух схем больше похожа на правильную? #include <iostream> #include <iomanip> #include <ctime> #include <cmath> #include <iomanip> #include <fstream> #include <conio.h> #include <stdlib.h> #include <windows.h> http://www.cyberforum.ru/cpp-beginners/thread888274.html
C++ Создание списка структур из структур исходного списка
Добрый день. В следующей программе, в функции nowaq не получается создать список из структур исходного списка(делаю по аналогии с функцией queue): #include <stdio.h> #include <string.h> #include <malloc.h> #include <iostream> #define Lmax 20 #define CLR while(fgetc(f)!='\n')
Построить список слов, который есть в заданном тексте. Определить сколько раз встречается каждое слово в этом тексте. C++
Здравствуйте у меня проблема, есть такое задание: Задан текст. Необходимо построить список слов, который есть в этом тексте. Определить сколько раз встречается каждое слово в этом тексте. Вот мой код: #include <iostream> #include <fstream> #include <string.h> #define N 80 using namespace std; struct list {
C++ Cоставить функцию, выводящую на экран слова, которые од-новременно содержатся в каждой из двух заданных строк http://www.cyberforum.ru/cpp-beginners/thread888269.html
Здравствуйте. Помогите составить функцию, выводящую на экран слова, которые од-новременно содержатся в каждой из двух заданных строк. В главной программе ввести с клавиатуры три строки длиной до 80 символов и вывести на экран слова, которые содержатся в каждой паре строке. Заранее спасибо!
C++ Поиск отрицательых циклов в графе подскажите пожалуйста, как определить, есть ли в графе отрицательные циклы....граф задаётся матрицей смежности P.S очень срочно нужно.....завтра контрольная, а я не могу в этом разобраться( подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.06.2013, 10:43     Перегрузка операторов. Инкапсуляция. Сделать так, чтобы оператор >> находил разницу между датами.
Цитата Сообщение от Praud Посмотреть сообщение
C++
1
void CSemCalendar::operator-(CSemCalendar& t)
Цитата Сообщение от Praud Посмотреть сообщение
- унарный оператор класса отнять текущую дату
Вы, видимо, забыли, что нестатическая функция-член принимает неявный аргумент this. В данном случае Ваш operator- является бинарным.
А вот для разности дат вместо operator>> (который интуитивно для этого совсем не подходит) логичнее было бы использовать бинарный operator-.

Вы так и не ответили на вопрос: "В чем Вы видите проблему с инкапсуляцией?"

Цитата Сообщение от BAADF00D Посмотреть сообщение
#include <ctime>
не?
ТС нужно для обучения, поэтому предположу, что готовые решения не подходят: ctime, std::chrono и пр.

Цитата Сообщение от Praud Посмотреть сообщение
И какие же у меня ляпы?
C++
1
2
3
4
5
6
void CSemCalendar::operator-(CSemCalendar& t)
{
        m_day=m_day-m_day;
        m_month=m_month-m_month;
        m_year=m_year-m_year;
}
Что по-Вашему здесь происходит? Почему бы не написать просто:
C++
1
m_day = m_month = m_year = 0;
И даже если бы Вы не забыли указать объект t, то просто вычесть одну дату из другой так нельзя. Представьте, например, что будет на стыке мясяцев.
 
Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru