BG Development


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

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



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

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



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



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

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



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



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

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



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


--------------------
Напред! Живота е сраженье! Напред! И прав всегда ходи!
Напред, макар към поражение! Ако ще паднеш, прав падни!
---
Raw, and untamed in spirit, We chew this world and Spit it out
---
Challenge my own world to chaos
---
“I overcame myself, the sufferer; I carried my own ashes to the mountains; I invented a brighter flame for myself.”
PMEmail PosterUsers Website
Top
gat3way
Публикувано на: 14-09-2018, 21:59
Quote Post



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

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



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



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

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



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

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


--------------------
Напред! Живота е сраженье! Напред! И прав всегда ходи!
Напред, макар към поражение! Ако ще паднеш, прав падни!
---
Raw, and untamed in spirit, We chew this world and Spit it out
---
Challenge my own world to chaos
---
“I overcame myself, the sufferer; I carried my own ashes to the mountains; I invented a brighter flame for myself.”
PMEmail PosterUsers Website
Top
gat3way
Публикувано на: 14-09-2018, 22:05
Quote Post



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

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



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



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

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



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


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

Мнения: 7025
Регистриран на: 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



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

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



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


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



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

Мнения: 3351
Регистриран на: 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-2018 | BG Development | All Rights Reserved
RSS 2.0