Задача: Поля данных класса: Название элемента, сокращенное название (например Na), порядковый номер в таблице, масса. Все это пользователь вводит для двух элементов. Программа должна проверить, у кого масса больше и вывести информацию о нем, если массы равны, то вывест соответствующее сообщение. Вот код, компилируется, н овыполняется почему то неправильно: Сразу после ввода название программа вылетает.
| Код | #include <iostream> using namespace std;
class chem { char name; char sname; int num; int m;
public: friend bool operator > (chem a, chem b); friend ostream& operator << (ostream &o, chem b); friend istream& operator >> (istream &i, chem &b); };
bool operator > (chem a, chem b) { if (a.m>b.m) return true; return false;
}
ostream& operator << (ostream &o, chem b) { o<<b.name<<endl; o<<b.sname<<endl; o<<b.num<<endl; o<<b.m<<endl; return o; } istream& operator >> (istream &i, chem &b) { cout<<"Enter name: "<<endl; i>>b.name; cout<<"Enter sname :"<<endl; i>>b.sname; cout<<"Enter number :"<<endl; i>>b.num; cout<<"Enter mass :"<<endl; i>>b.m; return i; } int main() { chem first,second; cin>>first; cin>>second; if (first>second) cout<<first<<endl; else if (second>first) cout<<second; else cout<<"Masses are equal"<<endl; cin.get(); cin.get(); return 0; }
|
|