Kezdőoldal » Számítástechnika » Programozás » Sokat kellene módosítani a...

Sokat kellene módosítani a C++ fordítón ahhoz, hogy minden alapértelmezetten konstans legyen és csak akkor legyen valami változó ha elé írom a "mut" kulcsszót?

Figyelt kérdés
2018. okt. 25. 21:19
1 2 3
 21/25 anonim ***** válasza:

"Komolyra fordítva a szót ti tényleg amatőrőknek tűntök és teljesen mindegy hány éve programoztok"


Mert te aztán igazán professzionális stílusban kommunikálsz és kicsit sem olyanban, mint egy max 2 év tapasztalattal rendelkező junior.


Képzeld külföldi forumokról is el fognak hajtani, ha azzal kezded kijelented, hogy a c++-ban tervezési hiba van

2018. okt. 26. 19:43
Hasznos számodra ez a válasz?
 22/25 A kérdező kommentje:

"Mert te aztán igazán professzionális stílusban kommunikálsz"

Én tök normális stílusban beszéltem, amíg nem szólogattatok be. Azóta csak tükröt mutatok, de akkora az egótok, hogy nem veszitek észre! :D


"kicsit sem olyanban, mint egy max 2 év tapasztalattal rendelkező junior."

Még mindig projektálsz. Továbbra is hasztalan.


"Képzeld külföldi forumokról is el fognak hajtani, ha azzal kezded kijelented, hogy a c++-ban tervezési hiba van"

Szinte az összes nyelvben vannak tervezési hibák, nem is kevés. Sokmindenről utólag derül ki, hogy rossz ötlet volt. Maguk a programnyelv tervezők is beszélnek ezekről. Ezért is jelennek meg időnként új nyelvek, hogy egy nyelvből a jó dolgokat átemelje, a rossz dolgokat meg kihagyja. Ez nem foci, hogy mindent csak szeretni vagy utálni lehet. Ebből csak ti csináltok problémát.

2018. okt. 26. 19:57
 23/25 anonim ***** válasza:

Érdekes elképzelés és szerintem valóban lenne létjogosultsága az objektumorientált nyelvek terén - de nem pont ebben a formában. Elvégre a fő problémát az okozza, hogy adva van egy metódus, ami vár egy osztálypéldányt, és bár a metódus neve nem utal arra, hogy az a metódus módosítani fogja az objektum adattagjait, mégis megteszi azt. Mondjuk valami ilyesmi:

class Valami {

.. public int adat;

}


void Kiir(Valami v) {

.. v.adat++;

.. Console.WriteLine(v.adat);

}


Ilyenre lenne jó egy olyan programozási eszköz, ami azonnal figyelmezteti a programozót, ha ilyen történik, valahogy így:

void Kiir(Valami v) {

.. v.adat++; //Syntax error: The method must not modify the data members of an object that is not marked as 'mut'.

.. Console.WriteLine(v.adat);

}


void Kiir(mut Valami v) {

.. v.adat++; //OK

.. Console.WriteLine(v.adat);

}

2018. okt. 26. 20:01
Hasznos számodra ez a válasz?
 24/25 anonim ***** válasza:

Megközelítés kérdése. Ami neked mondjuk előny lenne, az talán a többségnek macera, ami meg neked hibaforrás, az másnak lehetőség. Az alap koncepció itt az volt, hogy alapból lehetőség legyen módosítani, amit lehet, ill. ha szükséges, lehessen ezt korlátozni.

Lehetne fordítva is, de azért az felvet pár egyéb kérdést is, pl. pointereknél melyik fajta const legyen a default; formális paraméterlistában is így működjön-e (hiszen az eleve érték szerint jelenik meg lokális változóként); függvényeknél is ez legyen-e (void f() const); stb. Mondhatnánk, hogy nem, csak a "sima" változóknál, de azért érezhető, hogy nem lenne tőle egyszerűbb a nyelv logikája.

A főkérdésre: nem az a kérdés, hogy sokat kell-e módosítani, hanem hogy mit és hogyan.

2018. okt. 26. 22:33
Hasznos számodra ez a válasz?
 25/25 anonim ***** válasza:

A C++ nyelv tervezésében az egyik legelső szempont mindigis az volt, hogy hatékony, gyorsan futó programokat lehessen rajta írni. A fejlesztői kényelem igen hátul van a prioritási listán.


A tény pedig az - bármenynire is ellene vagy - hogy a széleskörű használatban változóból több van, mint konstansból. Az, hogy te több konstanst használsz nem jelent mást, mint hogy te több konstant hazsnálsz, mint változót. Lehet hogy amit te fejlesztesz, arra pont ez jellemző, lehet hogy pl nincsenek igazán komplex alprogramok benne, amik igénylik a változók széleskörű használatát. Az is lehet, hogy fölöslegesen sok műveletet hajtasz végre amiatt, mert minimalizálod a változóid számát, így bizonyos műveleteket több alkalommal is megismételsz. Lehet csak így alakult. Én speciel messze nem használok annyi konstanst, mint változót, pedig hidd el, én is igyekszem minél hülyebiztosabbra írni a kódomat.


Mint te is mondtad, vannak nyelvek, ahol a konstans az alapértelmezett. Nem változtat semmit, mert ugyanúgy ott van egy csomó másik nyelv, ahol meg nem. Nem lehet az érme egyik oldalát kiragadni, és ignorálni a másik felét, tudod? :D

2018. okt. 27. 00:09
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!