@ProCxx

Страница 341 из 2477
Ned Ogl
20.10.2016
14:25:48
эй, кореша, скажите, как правильно эксепшны оформлять?

на каждый эксепшн свой класс, или можно их как-то подсобрать в кучку?

Александр
20.10.2016
14:31:47
на каждый эксепшн свой класс, или можно их как-то подсобрать в кучку?
Сделай базовый класс исключений, и наследуй от него классы конкретных ситуаций (я ьы так сделал)

Ned Ogl
20.10.2016
14:32:25
Google
T3ch
20.10.2016
14:39:02
да, там переопределяешь метод аля what() только более удобный

Ned Ogl
20.10.2016
14:45:56
да, там переопределяешь метод аля what() только более удобный
а можно конкретный пример, я не очень понимаю, о чём ты

T3ch
20.10.2016
15:17:46
а можно конкретный пример, я не очень понимаю, о чём ты
по дефолту у класса exception есть метод const char* what() const возвращающий сообщение об ошибке

Ned Ogl
20.10.2016
15:18:11
оО...

T3ch
20.10.2016
15:18:22
есть смысл в своем базовом классе поменять на что-то с std::string const&, так удобнее

$continue$
20.10.2016
16:46:47
enable_if <>

template

Sergey
20.10.2016
17:27:09
Энейбл иф обычно для дизамбигити в выборе сигнатур или типов в шаблонах юзают. Больше он ни на что не годен.

Если не юзаешь идеи буста, то для исключений всегда std::runtime_error в качестве базового класса юзай. Метод what перекрывать тогда не надо, тк в конструктора можно набить строку описания. Ну а делать свой what со шлехами в стд::стрингах - плохая идея. Между модулями станет неудобно исключения пересылать, тк каждый со временем зааедет свой метод

*заведет

Ned Ogl
20.10.2016
19:45:42
ребяят, а есть идея, как перегрузить оператор [][]?

Google
Ned Ogl
20.10.2016
19:47:07
имеется класс template <class T> class Matrix{ private: int cols, rows; T* data; }

есть ли способ перегрузить оператор [][]?

Эдуард
20.10.2016
19:50:04
Через подобъект

Строку например возвращать

Ned Ogl
20.10.2016
19:50:29
ну, я возвращаю T*

Эдуард
20.10.2016
19:50:34
Или столбец (смотря что удобнее)

Ned Ogl
20.10.2016
19:50:44
это строка, да

но как теперь для строки реализовать оператор []?

Александр
20.10.2016
19:51:06
А зачем его перегружать?)

Ned Ogl
20.10.2016
19:51:25
T operator[](T* row); ???

А зачем его перегружать?)
матрица, все дела

Александр
20.10.2016
19:52:07
матрица, все дела
Я вижу, что матрица. Зачем перегружать-то?

Ned Ogl
20.10.2016
19:52:26
Я вижу, что матрица. Зачем перегружать-то?
хочу обращаться к объекту [x][y]

все дела

Lorgar
20.10.2016
19:52:29
хочу спросить, двумерный массив распологается в памяти линейно, в одной плоскости, разумеется( очевидно) что и массивы любого измерения будут распологаться линейно

тогда и адреса(номера) новых измерений(строк) будут у них распологаться линейно ( друг за другом, последовательно в памяти)

Ned Ogl
20.10.2016
19:53:01
это я понимаю, блин

как оператор-то объявить

я сейчас задаю вопрос по синтаксису именно

Александр
20.10.2016
19:55:30
Google
Ned Ogl
20.10.2016
19:55:40
блять

либо по делу, либо не отвечай

Александр
20.10.2016
19:56:32
Кхххх)) ты просто делаешь херню

Ned Ogl
20.10.2016
19:58:07
я просто делаю класс

Artem
20.10.2016
19:59:28
Ты можешь по оператору скобки отдавать служебный объект

Считай, итератор

В котором тоже будет оператор скобки

Это нормальная практика, особенно если с первым объектом можно будет работать как со столбцом.

Ned Ogl
20.10.2016
20:01:19
да, сделал как раз так

просто немножко тупил, как именно это реализовать

Artem
20.10.2016
20:04:05
Ну только так, и так -правильно

Admin
ERROR: S client not available

Ned Ogl
20.10.2016
20:31:35
бля, а как теперь сделать, чтобы оно было lvalue?

Vladislav
20.10.2016
20:33:32
Ned Ogl
20.10.2016
20:33:49
Благодарю

Lorgar
20.10.2016
20:35:53
ладно забейте

Ned Ogl
20.10.2016
21:17:28
operator= ему переопредели
стоп, а кому? классу, или вспомогатеельному?

Vladislav
20.10.2016
21:17:45
вспомогательному

Ned Ogl
20.10.2016
21:18:46
а почему, если оператор [][] возвращает значение элементарного типа?

например, int

Google
Vladislav
20.10.2016
21:20:57
это если тебе нужно уметь ar[] = br[] делать

а так просто int& возвращай)

Ned Ogl
20.10.2016
21:21:38
фак

нипанятна

Vladislav
20.10.2016
21:23:16
что именно?)

Ned Ogl
20.10.2016
21:23:27
ничиво

ща

проще заскринить

Matrix[] возвращает row row[] возвращает элемент матрицы (тип Т)

Vladislav
20.10.2016
21:24:41
в row T& operator[](..) сделай

а operator= убери, если присваивание строк ненужно)

Ned Ogl
20.10.2016
21:25:36
ненужно, конечно

спасибо

ребят, я совсем тупой, но я не понимаю, почему A[i++] вылетает за границы массива

Страница 341 из 2477