Вопрос № 89540: Помогите сделать алгоритм к этому заданию, что я сейчас вам задам.
Задание:
Определить является ли заданная целочисленная матрица магическим квадратом.Дана квадратная матрица порядка 2n.Получить новую матрицу, переставляя её блоки n*n крест...Вопрос № 89583: Здравствуйте уважаемые программисты! Подскажите пожайлуста как мне из приложения напрямую работать с dbf файлом без bde администратора? ...Вопрос № 89616: Уважаемые господа! Очень ищу книгу Культина "С/С++ в задачах и примерах"
Если кто-то может помочь, буду очень признательна....Вопрос № 89678: Здравствуйте, уважаемые эксперты.
Помогите пожалуйста разобраться с проблеммой ввода и вывода, а именно:
я создал класс, и мне нужно переопределить operator<< и operator>> для cout и cin соответственно....
Вопрос № 89.540
Помогите сделать алгоритм к этому заданию, что я сейчас вам задам.
Задание:
Определить является ли заданная целочисленная матрица магическим квадратом.Дана квадратная матрица порядка 2n.Получить новую матрицу, переставляя её блоки n*n крест-накрест.
Отправлен: 01.06.2007, 08:11
Вопрос задал: Fahr (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Терсков Сергей
Здравствуйте, Fahr!
Код к задачам в приложении. Компилировал в MS VS 2005.
Приложение:
Ответ отправил: Терсков Сергей (статус: Студент)
Ответ отправлен: 01.06.2007, 08:42
Вопрос № 89.583
Здравствуйте уважаемые программисты! Подскажите пожайлуста как мне из приложения напрямую работать с dbf файлом без bde администратора?
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 01.06.2007, 23:49
Вопрос № 89.678
Здравствуйте, уважаемые эксперты.
Помогите пожалуйста разобраться с проблеммой ввода и вывода, а именно:
я создал класс, и мне нужно переопределить operator<< и operator>> для cout и cin соответственно.
Отвечает: Mystic
Здравствуйте, Добрынин Алексей Сергеевич!
Чтобы переопределить оператор << для cout, надо объявить его дружественным в классе. Допустим, Ваш класс называется MyClass. Тогда объявление оператора выглядит следующим образом:
ostream& operator<<(ostream& s, const MyClass& m);
Возвращать функция должна переменную s. Это необходимо для того, чтобы можно было записывать цепочки вида:
cout << 1 << MyClass() << "Что-нибудь еще" << endl;
По этой же причине ostream& s должен стоять слева, поэтому оператор приходится объявлять не в классе. Второй операнд оператора следует объявить как ссылку, поскольку копирование объекта в данном случае не оправдано ничем. Также его следует объявить константным все для тех же цепочек, пример которой я написал выше. Вполне логично, что operator<< не изменяет переменную m, кроме того компилятор создает временный объект в следующей строке и делает её константной:
cout << MyClass();
Поэтому если убрать const, компилятор выдаст ошибку. Вот вкратце про operator<< для cout.
Объявление оператора >> для cin выглядит похоже:
istream& operator>>(istream& s, MyClass& m);
Все рассуждения выше (кроме константности) относятся и сюда.
Надеюсь, я чем-то помог Вам.
Ответ отправил: Mystic (статус: 6-ой класс)
Ответ отправлен: 02.06.2007, 11:27 Оценка за ответ: 5