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

Структура и кое-что не понятно... - C++

Восстановить пароль Регистрация
 
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
24.04.2012, 22:31     Структура и кое-что не понятно... #1
Имеется такая структура

C++
1
2
3
4
5
6
7
8
9
10
struct Person  
{
    std::string surname;
    unsigned int year;
 
    bool operator < (const Person &sg) 
    {
        return (this->year < sg.year); 
    }
};
И что значит запись std::, зачем она нужна?
Не могу понять - вот эту записть? -
C++
1
2
3
4
bool operator < (const Person &sg) 
    {
        return (this->year < sg.year); 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2012, 22:31     Структура и кое-что не понятно...
Посмотрите здесь:

Conversion from 'size_t' to 'int' и еще кое-что C++
C++ Перевод из HEX в ASCII и ещё кое - что
подскажите по самоучителю кое что C++
Не получается кое-что C++
Массив и кое-что ещё C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xavier
in god we trust
 Аватар для Xavier
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
24.04.2012, 22:34     Структура и кое-что не понятно... #2
std -стандартное пространство имен
std::string surname; это значит что string принадлежит стандартному пространству имен

C++
1
2
3
4
bool operator < (const Person &sg) 
    {
        return (this->year < sg.year); 
    }
это перегрузка оператора сравнивает объект(this) слева от операнда с объектом (sg) справа и возвращает или true или false
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
24.04.2012, 22:35     Структура и кое-что не понятно... #3
std:: - нужно читать про неймспейсы в c++
bool operator < (const Person &sg) - переопределенный оператор < (меньше) для структуры Person. Читать про переопределение операторов в с++
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
24.04.2012, 22:44  [ТС]     Структура и кое-что не понятно... #4
Цитата Сообщение от Xavier Посмотреть сообщение
std -стандартное пространство имен
std::string surname; это значит что string принадлежит стандартному пространству имен

C++
1
2
3
4
bool operator < (const Person &sg) 
    {
        return (this->year < sg.year); 
    }
это перегрузка оператора сравнивает объект(this) слева от операнда с объектом (sg) справа и возвращает или true или false
А почему этот оператор в "структуре" находиться?
И как с ним работать, то есть применить?
Xavier
in god we trust
 Аватар для Xavier
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
24.04.2012, 22:52     Структура и кое-что не понятно... #5
он перегружен только для объектов этой структуры .
что бы применить нужно создать например два объекта этой структуры
C++
1
2
Person ob1,ob2;
ob1<ob2;
и потом сравнивать (можно использовать например в if инструкции)
оператор < перегружается только для объектов структуры в применении к стандартным типам он не изменяется(его можно перегрузить чтобы он выполнял любое действие над объектами структуры хоть умножение объектов этой структуры ,но этого ни кто не делает стараются что бы действие оператора перегруженного совпадало с действием оригинала)
советую почитать литературу какую нибудь на эту тему и ознакомится с перегрузкой операторов
Yandex
Объявления
24.04.2012, 22:52     Структура и кое-что не понятно...
Ответ Создать тему
Опции темы

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