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

Класс С++. Вычисление разницы в возрасте для двух студентов - C++

Восстановить пароль Регистрация
 
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
17.04.2013, 16:05     Класс С++. Вычисление разницы в возрасте для двух студентов #1
Вычисление разницы в возрасте для двух студентов (-).
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
int  operator - (CStudent &a); 
------------------------------------
int CStudent::operator -(CStudent &a)
{   if (year=!0) 
    return (year - a.get_year());
    else cout<<"\nНевозможно перевести студента на следующий курс";
    
}
--------------------------------------
case '5':
            {
 
        CStudent s1  ("Петрова",  G1, 1995);
                    CStudent s2  ("Иванова", G2,  1991);
                
                    cout<<"\nСозданы два студента";
                    s1.output();
                    s2.output();
                    cout<<"\nДемонстрируется работа операции ";
                    int s3=s1-s2;
                    cout<<s3;
 
        
 
            }
---------------------------------------------
Миниатюры
Класс С++. Вычисление разницы в возрасте для двух студентов  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2013, 16:05     Класс С++. Вычисление разницы в возрасте для двух студентов
Посмотрите здесь:

C++ Вычисление разницы произведения и суммы положительных элементов массива
Определить двух студентов с наивысшим средним баллом. C++
C++ Составить программу для вычисления среднего балла студентов, если количество студентов и оценки вводятся с клавиатуры.
Создать класс - институт , у которого есть название и число студентов C++
Строка: Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 538
17.04.2013, 16:09     Класс С++. Вычисление разницы в возрасте для двух студентов #2
C++
1
2
3
4
5
6
7
const CStudent& operator - (const CStudent& a)
{
    if (this->year =! 0)
        return (this->year - a.get_year());
    else
        cout << "\nНевозможно перевести студента на следующий курс";
};
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
17.04.2013, 16:31  [ТС]     Класс С++. Вычисление разницы в возрасте для двух студентов #3
Цитата Сообщение от Afflicted Посмотреть сообщение
C++
1
2
3
4
5
6
7
const CStudent& operator - (const CStudent& a)
{
    if (this->year =! 0)
        return (this->year - a.get_year());
    else
        cout << "\nНевозможно перевести студента на следующий курс";
};
C++
1
2
rror C2662: CStudent::get_year: невозможно преобразовать указатель "this" из "const CStudent" в "CStudent &"
1>          В результате преобразования теряются квалификаторы
В чем может быть проблема?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.04.2013, 16:32     Класс С++. Вычисление разницы в возрасте для двух студентов #4
alexSo94, В том что get_year должна быть константной функцией, ибо не изменяет состояние объекта.
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
17.04.2013, 16:41  [ТС]     Класс С++. Вычисление разницы в возрасте для двух студентов #5
Цитата Сообщение от ForEveR Посмотреть сообщение
alexSo94, В том что get_year должна быть константной функцией, ибо не изменяет состояние объекта.
У меня в классе она обьявлена так:
C++
1
int get_year(){return year;}
Когда меняю на const вылетает ошибка
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.04.2013, 16:43     Класс С++. Вычисление разницы в возрасте для двух студентов #6
alexSo94,
C++
1
int get_year() const {return year;}
Оператор должен выглядеть как

C++
1
2
3
4
5
6
7
int CStudent::operator -(const CStudent &a)
{   
    if (year != 0) 
       return year - a.get_year();
    cout<<"\nНевозможно перевести студента на следующий курс";
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2013, 16:50     Класс С++. Вычисление разницы в возрасте для двух студентов
Еще ссылки по теме:

C++ Вычисление и вывод на экран в текстовый файл разницы максимум и минимум из K чисел
C++ Перегрузка операторов сравнения и разницы. Класс String
C++ Вычисление разницы дат

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

Или воспользуйтесь поиском по форуму:
alexSo94
140 / 4 / 1
Регистрация: 24.02.2013
Сообщений: 46
17.04.2013, 16:50  [ТС]     Класс С++. Вычисление разницы в возрасте для двух студентов #7
Цитата Сообщение от ForEveR Посмотреть сообщение
alexSo94,
C++
1
int get_year() const {return year;}
Оператор должен выглядеть как

C++
1
2
3
4
5
6
7
int CStudent::operator -(const CStudent &a)
{   
    if (year != 0) 
       return year - a.get_year();
    cout<<"\nНевозможно перевести студента на следующий курс";
    return 0;
}
Огромное тебе человеческое спасибо)))) А то с классами не так давно)
Yandex
Объявления
17.04.2013, 16:50     Класс С++. Вычисление разницы в возрасте для двух студентов
Ответ Создать тему
Опции темы

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