1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
У меня такая задача: создать массив объектов и отсортировать по любому полю. Делаю в Borland C++ 3.1. Проблема в сортировке. Выдает ошибку cannot convert 'avto' to 'int'. Вот, что писал:
#include <iostream.h> #include <conio.h> #include <string.h> const int n=3; class avto {
class avto { // заменяем поэлементные ввод и вывод на соотв. операторы (реализация - ниже) friend istream& operator >> (istream& is, avto& av); friend ostream& operator << (ostream& os, avto& av);
char name[20]; int speed; float volume;
public: avto(const avto& av) { // это вызывается когда делаешь avto X = av[i]; strcpy(name, av.name); volume = av.volume; speed = av.speed; }
avto(); // конструктор по умолчанию...
int getSpeed() { // обеспечение доступа к необщему члену - speed return speed; } };
// Теперь - реализация ввода объекта типа avto // здесь все просто - вводим на каждой строке одно данное, // после которого жмем Enter istream& operator >> (istream& is, avto& av) { is >> av.name; is >> av.speed; is >> av.volume;
return is; }
// ну, и вывод того же объекта: ostream& operator << (ostream& os, avto& av) { os << av.name << "\t" << av.speed << "\t" << av.volume << endl; return os; }
// Конструктор по умолчанию avto::avto(): speed(0), volume(0.0) // другая форма записи speed = 0 и volume = 0.0 { strcpy(name,"<empty>"); // хотя можно было и оставить пробел, как было у тебя }
void sort(avto* av);
int main() { clrscr(); int i; avto a[3]; for(i = 0; i < n; i++) { // меняем приглашение, поскольку изменился способ ввода данных cout << "input \"name\" <enter>, \"speed\" <enter>, \"value\" <enter>" << endl;
// а вот так теперь вводится объект, причем можно реализовать // операторы << и >> так, что этот же код без изменений будет // работать и с файлами, а не только с cin... cin >> a[i]; }
cout << "Ishodnie dannie" << endl; for(i = 0; i < n; i++) cout << a[i]; // соответственно, вывод данных без out