Информация об изменениях

Сообщение Re[4]: Про указатели в Qt - нравится ли вам? от 05.10.2023 9:06

Изменено 05.10.2023 9:09 AlexGin

Re[4]: Про указатели в Qt - нравится ли вам?
Здравствуйте, sergii.p, Вы писали:

SP>Здравствуйте, AlexGin, Вы писали:


AG>>Первый вариант — выглядит вполне корректно и логично (как для C++, так и для Qt).


SP>сейчас для передачи владения в С++ семантика перемещения и только она выглядит логично.


Но это зависит от задачи.
Например: зачем мне перемещать объект, если он нужен именно эдесь?

Вот пример:
   m_pMainWidget = new MainWidget(this);
   m_pVBoxLayout->addWidget(m_pMainWidget);
   ...
   m_pMainWidget->setGeometry(...);



SP>А когда вы передаёте голый указатель, то не можете гарантировать, что будет происходить дальше.


SP>Не, конечно можно лазить по документациям, но это мартышкин труд.

Не понял, к чему Вы относите данную фразу?

SP>Это похоже на спор с чистым С. Ты им говоришь, что передавать указатель в С++ идеологически неверно, а они не понимают. Это как же, деды передавали и мы будем.

Идеология — это другое.
Ну передавай ссылку, а не указатель.
Однако, не везде это прокатит: нулевой ссылки, в отличие от Java и .NET, в C++ быть не может.
Re[4]: Про указатели в Qt - нравится ли вам?
Здравствуйте, sergii.p, Вы писали:

SP>Здравствуйте, AlexGin, Вы писали:


AG>>Первый вариант — выглядит вполне корректно и логично (как для C++, так и для Qt).


SP>сейчас для передачи владения в С++ семантика перемещения и только она выглядит логично.


Но это зависит от задачи.
Например: зачем мне перемещать объект, если он нужен именно эдесь?

Вот пример:
   m_pMainWidget = new MainWidget(this);
   m_pVBoxLayout->addWidget(m_pMainWidget);
   ...
   m_pMainWidget->setGeometry(...);


SP>А когда вы передаёте голый указатель, то не можете гарантировать, что будет происходить дальше.

Гарантировать, что будет дальше — ни в каком случае не возможно. Даже, если кажется, что от всех ошибок защитился!

SP>Не, конечно можно лазить по документациям, но это мартышкин труд.

Не понял, к чему Вы относите данную фразу?

SP>Это похоже на спор с чистым С. Ты им говоришь, что передавать указатель в С++ идеологически неверно, а они не понимают. Это как же, деды передавали и мы будем.

Идеология — это другое.
Ну передавай ссылку, а не указатель.
Однако, не везде это прокатит: нулевой ссылки, в отличие от Java и .NET, в C++ быть не может.