|
type-rich инициализация
|
|||
---|---|---|---|
#18+
у обычных кстати нет таких заморочек: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 22:01 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
когда я делаю: Код: plaintext 1.
у меня ф-я поедет во все объекты и увеличит их ВСЕ или как? а если её static сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2019, 20:48 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух у меня ф-я поедет во все объекты и увеличит их ВСЕ или как? а если её static сделать? Нет. В объекте не хранятся указатели на его функции. Это обычные функции с дополнительным аргументом равным указателю на объект. Вызов через `.` - просто синтаксический сахар. Если есть виртуальные функции, то в объекте еще хранится указатель на таблицу виртуальных функций, но не на сами функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 02:39 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
ясно, спасибо. В Core Guidelines топят за то, чтобы класс содержал как можно меньше ф-й что сами ф-и надо выносить наружу, как "helper functions" авторC.4: Make a function a member only if it needs direct access to the representation of a class хотя в vector все ф-и внутри класса... Или они уже потом CG сочиняли и вектор не успели ещё переделать, или я чего-то не понял... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 04:49 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух, есть книжка: С++17 STL. Стандартная библиотека шаблонов. Автор:Яцек Галовиц В .pdf доступна, если не найдешь - могу скинуть. Там расписано. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 09:15 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух, Вектор это контейнер цепочки объектов. Надо ли объект делать не просто структурой а ещё и умной, с методами, зависит от бизнес логики. Удобства программиста. Моделирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 10:42 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух В Core Guidelines топят за то, чтобы класс содержал как можно меньше ф-й что сами ф-и надо выносить наружу, как "helper functions" хотя в vector все ф-и внутри класса... Или они уже потом CG сочиняли и вектор не успели ещё переделать, или я чего-то не понял... Если функция - часть публичного API класса, то она вполне уместна в самом классе. А есть это реализаия деталей в private то ее вполне можно вынести из класса и спрятать в .cpp. Но только если это не усложнит программу. Например если в классе много полей, с которыми работает функция, то придется все это передавать в арументах, что затруднит чтение (да и написание) такого кода. А вообще чем меньше функций в классе тем быстрее компилируется, т.к. меньше зависимостей между модулями. Это скорее всего и была основная причина для появления данного пункта в гиде. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 13:52 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky чем меньше функций в классе тем быстрее компилируется, Извечная дилемма. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 14:01 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Anatoly Moskovsky чем меньше функций в классе тем быстрее компилируется, Извечная дилемма. нет там дилеммы, в CG отдельно прописаны инварианты - если они есть, то должны быть внутри класса А если нет, то вот такие ф-и, которые НЕ проверяют инварианты и НЕ работают с приватами, походу они отлетают наружу в helper functions, которые лежат в том же неймспейсе ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 16:23 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
ёёёёё полудух, есть книжка: С++17 STL. Стандартная библиотека шаблонов. Автор:Яцек Галовиц В .pdf доступна, если не найдешь - могу скинуть. Там расписано. нашёл английскую 2018 года ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 16:33 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух нашёл английскую 2018 года "C++17 STL by Jacek Galowicz" в 2018 не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 17:20 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
да она значит 2е издание ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 17:34 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух PetroNotC Sharp пропущено... и тем глупее классы по ООП. Извечная дилемма. нет там дилеммы, в CG отдельно прописаны инварианты - если они есть, то должны быть внутри класса А если нет, то вот такие ф-и, которые НЕ проверяют инварианты и НЕ работают с приватами, походу они отлетают наружу в helper functions, которые лежат в том же неймспейсе Если бы не было дилеммы то не было бы топика). Мне больше нравится вот эта дорожная карта: Anatoly Moskovsky Если функция - часть публичного API класса, то она вполне уместна в самом классе. То есть эти методы известны в классе еще задолго до private.. ... Ну, а если вы передаете их куда то в веб, то передают Data transfer object (DTO) или Value object (VO) уже вообще без функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2019, 18:17 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
а посчитать размеры полей в структуре и умножить на кол-во структур в векторе это единственный правильный способ узнать полный размер в памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 04:46 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух а посчитать размеры полей в структуре и умножить на кол-во структур в векторе это единственный правильный способ узнать полный размер в памяти? Этот способ - один из неправильных. Примерно как подсчет объема абстрактного хранилища для картошки методом умножения объема одной картошки на ее количество в данный момент. Ты получишь "объем как минимум", всего лишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 12:26 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
а чтобы узнать как правильно, надо второй раз спрашивать чтоли или это секрет ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 17:41 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух а посчитать размеры полей в структуре и умножить на кол-во структур в векторе это единственный правильный способ узнать полный размер в памяти? A) если простой объект - sizeof B) если сложный то никак не узнать С) в отладчике или профайлере в рантайм. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 17:59 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
PetroNotC Sharp B) если сложный то никак не узнать ну ок, пусть профайлер... а MSVS, например, разве не показывает размеры ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 19:55 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух а MSVS, например, разве не показывает размеры ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 23:12 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 23:14 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
это не моя задача - считать я для этого компьютер купил ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2019, 23:49 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
но на вскидку можно сказать, что 15024 не понятно, в чём сложность то ему посчитать... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 00:52 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух не понятно, в чём сложность то ему посчитать... Кому "ему"? Что, менеджер памяти должен вести учет по каждому классу? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 03:04 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
любой ф-и: sizeof(), или size(), или .size() непонятно, в чём сложность то пробежаться по вектору и посчитать заполненные поля в структурах... почему: PetroNotC Sharp B) если сложный то никак не узнать ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 06:03 |
|
type-rich инициализация
|
|||
---|---|---|---|
#18+
полудух, Я говорил про указатели в первую очередь. Как тут считать? Зависимости. Вот я одну либо загрузил, а она из за зависимостей 205 либ загрузила. Второй вопрос, кому это надо? Проге надо память, она просит у операционки. А заранее знать занафига?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2019, 11:35 |
|
|
start [/forum/topic.php?fid=57&msg=39893503&tid=2017515]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 283ms |
total: | 419ms |
0 / 0 |