Loading...
asparuh.k avatar asparuh.k 16 Точки

Работа с пойнтери

Въпросът ми е ще има ли малко обяснения за работата със стойности и адреси. Защото на мен ми е интересно как най-оптимално да записваш и копираш обекти, така че да не се хаби време и памет. Предполагам и на други хора, на които в други езици не им се е налагало да мислят толкова за това. Например във домашното по ООП ми се налага да копирам обекти няколко пъти и имам идея горе долу как да стане, но не съм сигурен. Ако е рано още за това - ОК.

Тагове:
0
C++ Programming
kosio197 avatar kosio197 104 Точки
Best Answer

Привет,

препоръчвам ти на погледнеш https://softuni.bg/trainings/1212/c-programming-october-2015

Лекцията "C Pointers" и като цяло лекциите в този курс са доста добри.

2
Filkolev avatar Filkolev 4482 Точки

Ако под други езици имаш предвид някой друг С подобен (Java/C#), то и там си работил с пойтъри, просто синтаксиса не ти го е показвал. За всеки обект, който се заделя в динамичната памет, реално пазиш пойнтър в идентификатора. Затова ако подадеш референтен тип на метод и обработваш въпросния обект в метода го променяш - имайки пойнтър може да оперираш с данните в обекта.

Относно ефикасността, дай по-конкретен пример какво правиш и къде мислиш, че може да се подобрят нещата и някой по-запознат вероятно ще помогне с обяснение.

0
asparuh.k avatar asparuh.k 16 Точки

Да тях имах предвид. Ами по-конкретно и на лекцията подавахме обекти през конструктора на друг клас по стойност. Мисля че последния лаб с правоъгълниците и обектите за положение и размер. Това караше обектите да се копират, а оригиналните после да се разрушават. То се видя накрая как се викаха деструкторите по време на конструиране на новите обекти. Това имах предвид под допълнителното време и памет. Предполагам решението е обектите които се подават на конструктора да се създават чрез new в heap-а. Чел съм че по-новите стандарти имат move конструкктори или нещо такова.

Въпроса ми е дали тези неща ще бъдат разяснени по някое време, защото вече в домашните възникват тези въпроси.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.