|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Сравнение структур в языке 'С' |
|
C/C++ - Сравнение структур в языке 'С'
|
Пользователь Сообщения: 59 |
Профиль | Отправить PM | Цитировать Почему две структуры можно переписать обычным присвоением structA=structB, а вот сравнить нельзя if(structA==structB)
? |
|
Отправлено: 09:23, 19-04-2008 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать на С присвоить тоже нельзя. На C++ можно и присвоить и сравнить. Дело в том, что по правилам если не указано конструкторов, то автоматически генерируются следующие:
struct A { ~A() выполняет для всех членов member деструктор ~member() A() выполняет для всех членов member неявный конструктор без параметров member() A(const A&) то же самое, для всех членов A& operator=(const A&) то же самое, для всех членов } struct A { bool operator==(int n) {return n==0;} bool operator==(const double& n) {return n<0.;} friend bool operator==(const A&, const A&) {return false;} } A a, b; // будет работать: if (a==b || a==1 || b==-0.5) {...} // не будет работать, т.к. оператор не определён: // if (a!=b || a!=1 || b!=-0.5) {...} |
Отправлено: 14:30, 21-04-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
.NET - [решено] C# to C++ dll: Маршалинг(?) массива структур | XCodeR | Программирование и базы данных | 4 | 22-01-2010 10:18 | |
ПО на Румынском Языке | CtrlSoft | Программное обеспечение Windows | 18 | 04-12-2007 18:01 | |
запись структур в VС++ | Drey | Программирование и базы данных | 17 | 03-03-2004 02:27 | |
CD на русском языке | Tatiana | Microsoft Windows 95/98/Me (архив) | 4 | 17-12-2002 19:26 |
|