BG Development


Страници: (5) [1] 2 3 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> private у c++
gat3way
Публикувано на: 14-09-2018, 21:00
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3452
Регистриран на: 22.06.12



Аз нали не изпитвам особена любов към C++ и не го знаех това, но днес го научих и бях зловещо потресен. Винаги съм мислил че примерно ако имаш shared библиотека с някакъв клас в нея и тоя клас има private методи, тия методи никога не се експортват като символи и така ако имаш .so-то, нямаш (лесен) начин да ги викаш. Но се оказва че не е така, всичко се експортва и ако хванеш хедъра и промениш private на public, методът си се вика като стой та гледай. Направо бях потресен, аз си представях че в ц++-а има някаква логика все пак. Защо се експортват и какъв е смисъла от това бе? Някой знае ли това гениално решение чисто технически на какво се държи и защо така правят?
PMEmail Poster
Top
stewie
Публикувано на: 14-09-2018, 21:50
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 4827
Регистриран на: 14.07.16



Мааали това и в лайняните .нет и джава не можем го направим! Предлагам всичкия опен сос на ц++ ако това е истина, така всичко ще е мега опен и всеки ще може да сере и във фугите около тоалетната !
PM
Top
Gamma Goblin
Публикувано на: 14-09-2018, 21:57
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1681
Регистриран на: 21.02.18



Хаха, ц++ е шит. Но за съжаление всички езици са скапани icon_sad.gif Дано един ден създадат перфектния език icon_smile.gif


--------------------
Бе наш този свят преди да дойде човекът и нямаше място за богове
Отново ще бъде, но само че нека човешкият род да ги прибере
Изсъхват морета рушат се скалите, луната завинаги да свети ще спре
Ще паднее Господ Бог от звездите и всичко що диша в този ден ще умре
Тогава земята ще стане на пепел, свидетели ще бъдат само пясък и жар
И никой не ще помни дали нявга е светил ликът на отреченият бивш господар
PMEmail PosterUsers Website
Top
gat3way
Публикувано на: 14-09-2018, 21:59
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3452
Регистриран на: 22.06.12



Вие джавистите да си мълчите че при вас е не по-малко забавно точно това icon_smile.gif
PMEmail Poster
Top
Gamma Goblin
Публикувано на: 14-09-2018, 22:04
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1681
Регистриран на: 21.02.18



QUOTE (gat3way @ 14-09-2018, 21:59)
Вие джавистите да си мълчите че при вас е не по-малко забавно точно това icon_smile.gif

Глупости, private си е private, а сега с модулите даже и reflection-a няма да помогне


--------------------
Бе наш този свят преди да дойде човекът и нямаше място за богове
Отново ще бъде, но само че нека човешкият род да ги прибере
Изсъхват морета рушат се скалите, луната завинаги да свети ще спре
Ще паднее Господ Бог от звездите и всичко що диша в този ден ще умре
Тогава земята ще стане на пепел, свидетели ще бъдат само пясък и жар
И никой не ще помни дали нявга е светил ликът на отреченият бивш господар
PMEmail PosterUsers Website
Top
gat3way
Публикувано на: 14-09-2018, 22:05
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3452
Регистриран на: 22.06.12



Аааа е хубаво че сте го решили проблема с reflection-a значи icon_smile.gif
PMEmail Poster
Top
Реконструктор
Публикувано на: 14-09-2018, 22:12
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 514
Регистриран на: 18.12.06



земи се занимавай с нещо друго, честно
PMEmail Poster
Top
johnfound
Публикувано на: 14-09-2018, 22:59
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 7136
Регистриран на: 27.05.04



QUOTE (gat3way @ 14-09-2018, 22:00)
Някой знае ли това гениално решение чисто технически на какво се държи и защо така правят?

Ами просто защото кода си е в библиотеката. Щом е в библиотеката, то може да бъде извикан. Ако създателите на компилатора, който прави библиотеката не го направят, ще го направи някой друг със страничен инструмент. Така че те са направили нещата съвършено логично – маркират методите като private, а който иска да си ги вика, си е за негова сметка. Въобще, от гледна точка на процесора, private методите не се отличават по нищо от public методите. Разликата я правят хората, които използват библиотеката.

Така че, това въобще не е въпрос на каквато и да е сигурност, така че е напълно нормално. Обратното щеше да е SbO, което е въобще много лош стил, един от малкото истински антипатърни и повод за постоянни подигравки.

Това мнение е било редактирано от johnfound на 14-09-2018, 23:01


--------------------
asm32 - Приложно програмиране на асемблер.
Tox: 2B446ADCEC7E180CD4C59391D81D4CAB3E99CA7AE767DB3AB45AF976F8A2050FF071DDB733F1
PMEmail PosterUsers Website
Top
bvbfan
Публикувано на: 14-09-2018, 23:02
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3013
Регистриран на: 08.12.13



Ако говориш за променлива, е нормално да я има, иначе променяш големината на структурата и чупиш бинарната съвместимост. Абстракцията върху енкапсулирането е напълно фиктивна и тя е само да улесни програмисти, генерираният код на асемблер няма никакво ООП, така че не виждам никаква драма.


--------------------
QUOTE (Bender @ 23-04-2015, 19:11)
Xamarin: ЛАПАЙ!
Ти: Добре...
PMEmail Poster
Top
gat3way
Публикувано на: 14-09-2018, 23:07
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3452
Регистриран на: 22.06.12



A статик функциите в ц-то различават ли се по нещо, а? То е ясно че ги има и може да се викнат по един или друг начин. Обаче тук следва забавното нещо, значи цялата тази тарапана с публик/прайвът май си е само за вътрешна дисциплина? И цялото упражнение е просто като чекия, като да сложат прайвът мембъри и публични гетъри/сетъри и децата да се радват че имат енкапсулация някаква хаха. Ей затова се радвам на питонеца, там поне не се опитват да говорят едно а да правят друго, всичко си е публик и няма фантасмагории.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (5) [1] 2 3 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0