powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Матрицы, позднее связывание, и другое
25 сообщений из 72, страница 2 из 3
Матрицы, позднее связывание, и другое
    #39111244
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabВ Java класс может реализовать множество интерфейсов, например IDeterminableMatrix. В C++ есть множественное наследование. Только нужно правильно матрицы классифицировать.
По поводу подчёркнутого. Это тема отдельного топика. Тема интересная.
Бесконечная. И бесконечно спорная.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39111580
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
По поводу подчёркнутого. Это тема отдельного топика. Тема интересная.
Бесконечная. И бесконечно спорная.

тема интересная, но хотелось бы решить хотя бы такие вопросы о которых я думаю уже несколько дней:
1. Каким будет базовый класс в данной архитектуре ?
2. Как лучше организовать то о чём я спрашивал выше ?(Как предложил Дмитрий, Илья или mcureenab или Dimitry Sibiryakov )? Честно говоря ни один вариант мне не кажется именно тем что мне нужно. Видимо то что мне нужно, это то, о чём говорил Илья, и на С++ так сделать невозможно. Если я все правильно понял.

Вывод:
Так как нет однозначно правильного решения(что странно), значит нужно что-то менять. Может быть мое пожелание не обоснованно ? Может быть нет в этом такой необходимости ?

PS
Марк, спасибо, но я так понимаю это Java, и реализация этой задачи на Java требует прежде-всего проектирование интерфейсов и немного другую специфику, которую я не смогу перенести на С++
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39111613
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,
сможешь.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39111674
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryнет однозначно правильного решения(что странно)
Ничего странного. Однозначное решение есть только для простых задач. Для сложных возможен только компромисс между расширяемостью/читаемостью/производительностью и т.д. и т.п.

Определись с кругом задач, которые будешь решать и делай как считаешь правильнее. Когда сделаешь, поэксплуатируешь, поймешь что не так, тогда напишешь версию 2.0, более правильную, но тоже не идеальную.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39111675
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury1. Каким будет базовый класс в данной архитектуре ?

Если делать как myton, то основной функцией базового класса будет обобщение любых матриц, а может быть и любых математических объектов. Чтобы было от чего cast делать. Таким образом с т.з. интерфейсов, какой то сложной иерархии классов не должно быть. Каждый объект поддерживает те или иные интерфейсы.

Классы реализации вероятно будут наследовать. Так квадратная матрица может наследовать от прямоугольной матрицы. Это делай как тебе удобно. Тут нет единственно верного решения.

В C++ мне известны два способа реализации интерфейсов.
1. Это множественное наследование от абстрактных классов-интерфейсов. Получить указатель на интерфейс можно операторами cast.
2. Встраивание реализации абстрактных классов-интерфейсов в класс реализации. Получить указатель на интерфейс можно функцией. Это не так удобно, зато класс может динамически добавлять и удалять интерфейсы.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39111755
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуваки, это вам не джава какая-нибудь.
В С++ использование матриц должно выглядеть так:
Код: plaintext
1.
2.
3.
4.
matrix m1(5, 6);
matrix m2(5); // square
m1.det(); // throws
m2.det(); // ok


Ну или если в компайл-тайм ловить квадратность:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
class matrix;
class square_matrix: matrix;

matrix m1(5, 6);
square_matrix m2(5);
m1.det(); // compile error
m2.det(); // ok



Какие new? Какие фабрики? )))
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39111947
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky, +1
так и должно быть в С++, шаблоны рулят
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112020
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЧуваки, это вам не джава какая-нибудь.
В С++ использование матриц должно выглядеть так:
Код: plaintext
1.
2.
3.
4.
matrix m1(5, 6);
matrix m2(5); // square
m1.det(); // throws
m2.det(); // ok


Ну или если в компайл-тайм ловить квадратность:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
class matrix;
class square_matrix: matrix;

matrix m1(5, 6);
square_matrix m2(5);
m1.det(); // compile error
m2.det(); // ok



Какие new? Какие фабрики? )))

Анатолий, но как сделать так, чтобы в таком коде
Код: plaintext
1.
matrix m2(5); // square


m2 имел тип square_matrix ?
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112050
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryкак сделать так
Никак, обломись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112088
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSashaMercuryкак сделать так
Никак, обломись.


Тогда почему Анатолий так написал ?
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112094
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryТогда почему Анатолий так написал ?
Потому что у него класс matrix имеет два конструктора:
Код: plaintext
1.
2.
3.
4.
5.
matrix::matrix(x, y)
...
matrix::matrix(x) {
  matrix(x, x);
}


но класс один
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112125
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНикак, обломись.
Да собственно оно и не надо ))
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112130
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Код: plaintext
1.
2.
3.
4.
...
matrix::matrix(x) {
  matrix(x, x);
}


Страшные вещи пишете. А кто-то прочтет и потом будет думать, почему не работает ))
Не так надо вызывать конструктор из конструктора.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112150
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyDimitry SibiryakovНикак, обломись.
Да собственно оно и не надо ))
Понятно. Спасибо.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112187
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryАнатолий, но как сделать так, чтобы в таком коде
Код: plaintext
1.
matrix m2(5); // square

m2 имел тип square_matrix ? m2 может в runtime поддерживать интерфейс square_matrix. это можно сделать.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112205
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще можно нарисовать cast operator .
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112239
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyСтрашные вещи пишете. А кто-то прочтет и потом будет думать, почему не работает ))
Не так надо вызывать конструктор из конструктора.
Если честно - я не знал. Не приходилось на эти грабли наступать.
Затестил. Компилируется, но работает криво. Спасибо, буду знать.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
class Test {
private:
	int i;
public:
	Test(int v) {i = v;}
	Test(Test& v) {Test(v.i);}
	//Test(Test& v) {i = v.i;}
	void Print() {printf("%d\n", i);}
};

int main(int argc, char* argv[])
{
	Test x(1);
	Test y(x);
	x.Print();
	y.Print();
	return 0;
}

...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112286
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги. Можно также добавить к обсуждению библейский
спор о "количестве ангелов на кончике иглы".

О чём мы тут? Нужен юзкейс.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112362
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКоллеги. Можно также добавить к обсуждению библейский
спор о "количестве ангелов на кончике иглы".

О чём мы тут? Нужен юзкейс.

Если сам Анатолий не поленился посмеяться над моими сомнениями, то какой тут может быть юзкейс. Реализую первый вариант, предложенный Дмитрием.

PS
Когда я говорил о том что классы в целом есть в Си, мне говорили что в Си это реализовано через какие-то костыли. Теперь я говорю, не надо путать интерфейсы из Java и язык С++, мне говорят что интерфейсы это основа С++ (утрировано говоря)
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112480
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаешь, есть неплохие библиотеки для матриц написанные на сях без плюсов.

Вобщем... в погоне за лучшим можешь потерять хорошее.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112780
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЗнаешь, есть неплохие библиотеки для матриц написанные на сях без плюсов.

Вобщем... в погоне за лучшим можешь потерять хорошее.

Да, знаю что есть. Ещё есть Maple и MATLAB (которых вполне хватает), просто было интересно реализовать один численный метод(я мог бы и на Си его реализовать, кстати) и посмотреть какая-будет погрешность в решении, при реализации на С++. Хотел самостоятельно спроектировать всё правильно, потому возник такой вопрос
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112782
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryпросто было интересно реализовать один численный метод(я мог бы и на Си его реализовать, кстати) и посмотреть какая-будет погрешность в решении, при реализации на С++. Хотел самостоятельно спроектировать всё правильно, потому возник такой вопросКакая такая погрешность??? Саша, ты чего???
Реализация может быть удобной или не удобной, многословной или краткой. Но если ты знаешь формулы и алгоритм их использования, то какой-бы язык ты не использовал - погрешность будет всегда одинаковой. Зависящей от использованных формул и алгоритма.
Когда ж ты наконец поверишь что главное это алгоритм а не язык?
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112796
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl,
а как же погрешность описываемая в стандарте, e: 1.0+e=1.0. Или она тоже везде будет одинакова ?
Сравню по времени в таком случае.
Я понимаю то о чём вы говорите, правда. Спасибо :)
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112839
RWolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

встроенная плавучка во всех языках делается по IEEE 754, так что да, погрешность одинакова.
...
Рейтинг: 0 / 0
Матрицы, позднее связывание, и другое
    #39112870
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RWolfSashaMercury,

встроенная плавучка во всех языках делается по IEEE 754, так что да, погрешность одинакова.

я этого не знал. Зачем тогда эту информацию выносили в стандарт ? Странно
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 2 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Матрицы, позднее связывание, и другое
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]