![]() |
операции с матрицами на С+
Вложений: 1
Доброго времени суток вам! Товарисчи, помогиииите пожалуйста! завтра сдавать курсач. села писать. тема простая - операции с матрицами на С++(естессно с классами) под дос. пишу, поочередно все проверяя, запускаю на Turbo C (т.к. на ентом же будет запускать препод). на данном этапе вылазит ошибка:
EROR '<Tomat<int>::operator + (Tomat<int>,Tomat<int>) must be declared with one parameter плз! что нужно сделать??? |
В операторе + второй параметр лишний, т.к operator + является методом класса, а не френдом.
Пример: Tomat<int> a, b, c; c = a + b; Тип возвращаемого знач operator +(Tomat<int> b) { //тут a (из примера выше) - это будит this. } |
В тексте следующие ошибки:
Код:
(1) какая скобка за что отвечает? а если я захочу добавить что-то - куда писать? |
Спасибо за комментарии. В ходе написания программы, правда, сама вдуплила почему не работает перегрузка операторов. Я, наверно, не отметила, что я совсем начинающий в этом деле, поэтому очень часто лажаю.
Цитата:
Цитата:
Цитата:
Цитата:
|
пчелка, здесь все вам рады, и вашу самокритику читать мы не хотим. Лучше вместо "я плохая" ответить "я переделала так:" и привести улучшенный вариант. Я изначально писал на паскале, С/С++ изучал по книжке Старуструпа; её и советую. Что касается комментов - они нужны даже в маленькой программе (хотя бы краткое "to do"). Тем более если вы хотите чтобы в вашем коде разобрался другой человек. Про намётки и первые шаги можно было написать там же.
слово friend обозначает декларацию "друга" класса. Он будет иметь доступ к секциям private и protected, но являться внешним по отношению к классу (у функций не будет this). Пример: Код:
class A { То же самое с оператором <<. В стандартной библиотеке опеределены операторы сдвига потока для всех стандартных типов аргументов, и для новых типов рекомендуется доопределять. А сделать этот оператор другом нужно для доступа к скрытым членам аргумента. Хотя при продуманном дизайне класса можно обойтись и без друзей. Тогда меньше гемора при вносе изменений во внутреннюю структуру класса. |
Вложений: 1
Спасибо, что не остались равнодушными. =). выложу почти готовую программку(прога без комментов), авось кому-нить поможет. Она, канеш, не оч, не доработаная и стиль не соблюден, и не все задумки получилось воплотить, но всё ж... не судите строго. )
|
подскажите как сделать шаблон
Код:
template<class MATRIXTYPE> ОШИБКА: error C2955: MATRIX: для использования класса шаблон требуется список аргументов шаблон c:\$p\mvs\matrix\транспонирование\транспонирование\matrix.cpp 53 |
методом научного тыка:
Код:
template<class MATRIXTYPE> Код:
//КЛАСС MATRIX Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall MATRIX<int>::~MATRIX<int>(void)" (??1?$MATRIX@H@@QAE@XZ) в функции _main matrix.obj Ошибка 3 error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class MATRIX<int> const &)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABV?$MATRIX@H@@@Z) в функции _main matrix.obj Ошибка 4 fatal error LNK1120: 2 неразрешенных внешних элементов C:\$p\mvs\matrix\транспонирование\Debug\транспонирование.exe |
Print the square that consists of NxN cells filled with numbers from 1 to N*N in a spiral mode(see examples).
Input: Only one line that contains n (1<=n<=100). Output: The matrix in spiral view Examples: Input 1 Input 2 Input 3 3 4 5 Output 1 Output 2 Output 3 1 2 3 1 2 3 4 1 2 3 4 5 8 9 4 12 13 14 5 16 17 18 19 6 7 6 5 11 16 15 6 15 24 25 20 7 10 9 8 7 14 23 22 21 8 13 12 11 10 9 pojaluista pomogite rewit zada4ku!! sovsem ustal, net idei Print the square that consists of NxN cells filled with numbers from 1 to N*N in a spiral mode(see examples). Input: Only one line that contains n (1<=n<=100). Output: The matrix in spiral view Example: Input 1 3 Output 1 1 2 3 8 9 4 7 6 5 izvenite))) podpravka) :ok: |
а по-русски можно?
|
котвася, задание заключается в спиралевидном заполнении матрицы NxN значениями от центра против часовой по уменьшению. Или позиции 1.1 по часовой по возрастанию.
theBest4ainik, Задание понятно, какие твои предложения к его решению? "Нет идей" не принимается. Сядь и спокойно рассуждай, что и куда тебе надо записать. Короче реши примеров 5 руками. Т.е. заставь себя взять ручку и написать 5 матриц разного размера "спиралевидно". Затем посмотри, какие действия у тебя повторяются, чем они отличаются друг от друга и нет ли в них зависимости? Но ДО этого, еще раз, заполни 5 матриц разного размера в ручную, шариковой ручкой, спиралевидно. Дальше станет все прозрачней и понятней. |
Время: 08:18. |
Время: 08:18.
© OSzone.net 2001-