Ветеран
Сообщения: 1180
Благодарности: 279
|
Профиль
|
Отправить PM
| Цитировать
В тексте следующие ошибки: - не определены переменные stlb, str
- оператор+ про который сказал ganselo
Недочёты в структуре: - лучше передавать тяжёлые для копирования объекты по ссылке const Tomat&
- в main() ввод, ввод, сложили, ввод, вычли, ввод, конец программы? это так и задумывалось?
- хранить в классе информацию о размерности матриц
Стиль: - зачем мешать iostreams и stdio? прочитать элементы матрицы можно тоже через cin, вывести через cout
- ни одного комментария в тексте. Вы сами понимаете вашу(?) программу?
- ещё советую ввод сделать через friend istream& operator>>(istream&, Tomat&) а вывод через friend ostream& operator<<(ostream&, const Tomat&), тогда в программе вывод будет
Код:
cout << "введите матрицу:\n";
cin >> mat1;
// перепутать невозможно с
cout << "ваша матрица:\n" << c;
Код:
(1) какая скобка за что отвечает? а если я захочу добавить что-то - куда писать?
Tomat() {int i,j;
for(i=0; i<10; i++)
{for(j=0; j<10; j++)
{a[i][j]=0;}} };
(2) а вот так вопросы возникают?
Tomat()
{
// * можно было воспользоваться функцией memset
// memset(a, 0, sizeof(a)*100), но параметр шаблона
// может иметь непростой конструктор, и я тем попорчу память
// * можно было использовать шаблон fill(a, a+100, Tchto()), но я
// его ещё не знаю
for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
a[i][j]=Tchto(); // это нужно чтобы использовать более сложные объекты,
// например сomplex<> или любой другой, наделёный операциями +, -
// к примеру пусть есть set<string>, у которого есть операции + (слияние)
// и - (разница). Тогда можно использовать Tomat<set<string> > >
// вдруг мне понадобится в жизни когда-нибудь, крестики-нолики писать?
}
}
}; // Tomato()
|
Отправлено: 00:48, 18-01-2010
| #3
|