Войти
Urho3DФорумURHOSHARP

С++

Страницы: 1 2 37 8 Следующая »
#0
9:50, 6 сен. 2016

Попытка обобщить моменты сходства и расхождений С++ и  C#. Тем самым поднять уровень знаний по языкам, себе, ну и всем желающим.
Буду стараться задавать вопросы в тех моментах, которые легче спросить здесь, нежели читать литературу или искать в инете, дабы окончательно не поднадоесть Вам)

1) -> это тоже самое что в шарпах .? т.е.  Mouse->X  что и Mouse.X?
2)  Uielement*, *Uielement, что означают звездочки?

Спасибо!)


#1
10:19, 6 сен. 2016

1) Грубо говоря да, но не совсем, в C# помимо "." есть еще этот самый оператор "->" и я его даже в UrhoSharp юзал (для интеропа)
2) Опять же это есть в обоих языках, лучше наверное сперва основы С/С++ почитать про указатели/разыменование/ссылки и.т.п Изучить оба языка будет давольно сложно одновременно :)

#2
10:29, 6 сен. 2016

Ну мое мнение, что в C++ и C# больше различий, чем сходств, хотя на первый взгляд они похожи. Дьявол как говорится скрывается в деталях.

#3
10:31, 6 сен. 2016
я его даже в UrhoSharp юзал (для интеропа)

В DynamicGeometry, как раз его встретил и завис над ним. Возможно ли этот же блок написать без unsafe?
                      unsafe
                        { //TODO: avoid unsafe
                            Vector3* dest = (Vector3*)IntPtr.Add(vertexRawData, j * (int)vertexSize);
                              dest->X =  src.X * (1 + ampl * (float)Math.Sin(phase));
                        }

На подобие:
                            Vector3 dest =new Vector3(?????);
                            dest.X = src.X * (1.0f + ampl * (float)Math.Sin(phase));

Прочитал три книги по с# и нигде не видел выражения ->
Звездочки успешно игнорировал, думая что вряд ли они мне понадобятся))

#4
11:01, 6 сен. 2016

Zamir, это всё интероп специфик :) в нормальных приложения ты такого никогда не увидишь.
Тут у тебя есть указатель на структурку (на самом деле даже класс) из плюсов. и по этому указателю надо изменить поле.

#5
11:03, 6 сен. 2016

Недавно вот такой код в C# написал:

Matrix4 leftViewMatrixUrho =  *(Matrix4*) (void*) &leftViewMatrixDx;
:D валидный в C# аналог реинтерп каста

#6
11:16, 6 сен. 2016

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

#7
11:27, 6 сен. 2016

Тебе  надо не программы писать, а поэмы ))

#8
11:28, 6 сен. 2016

Zamir
> 1) -> это тоже самое что в шарпах .? т.е. Mouse->X что и Mouse.X?
> 2) Uielement*, *Uielement, что означают звездочки?
1)нет, не то же. В шарпе везде доступ через точку. В плюсах доступ к елементу через ссылочный тип стречлка, к статик "::" или точку.
2)первое обявление екземпляра ссылочного типа, второе - разыменование указателя, тоесть приведение в обычной вид

Сперва я очень сильно использовал референсы, но потом перестал в большинстве случаев, так как это повышает производительность.

#9
11:38, 6 сен. 2016
нет, не то же. В шарпе везде доступ через точку. В плюсах доступ к елементу через ссылочный тип стречлка, к статик "::" или точку.

Доходчиво и просто. Где бы я вычитал такое)
первое обявление екземпляра ссылочного типа
  по ходу везде его пихать нужно будет...
второе - разыменование указателя, тоесть приведение в обычной вид
Ладно уж, про указатели почитаю сам))
#10
11:54, 6 сен. 2016

Zamir
> по ходу везде его пихать нужно будет...
да вроде не везде.
Я вот всегда указатели и ссылки путаю, точнее их определение. Но мне плюсы нравятся тем, что памятью там самому надо управлять.

#11
11:59, 6 сен. 2016
нравятся тем, что памятью там самому надо управлять.

а мне как то комфортно жилось и без них до сих пор)
Памятью, наверное, имело смысл управлять во времена 486х, сейчас их солить можно. Конечно если целью задаться - можно и без памяти остаться)
#12
12:16, 6 сен. 2016

> Я вот всегда указатели и ссылки путаю, точнее их определение. Но мне плюсы нравятся тем, что памятью там самому надо управлять.

Ну да, фанаты c++ любят его за самостоятельно управление памятью и используют умные указатели чтобы вручную память не освобождать))

#13
12:24, 6 сен. 2016

1vanK
Я не использую их, только вручную, только хардкор =)

#14
12:26, 6 сен. 2016

Серьезно? ) А сколько delete в любой твоей демке на движке Urho? )

Страницы: 1 2 37 8 Следующая »
Urho3DФорумURHOSHARP

Тема в архиве.