Perché le conversioni di tipo implicito di solito non sono sicure e C ++ prende una posizione più sicura per la digitazione rispetto a C.
C di solito consente conversioni implicite, anche se la maggior parte delle probabilità è che la conversione sia un errore. Questo perché C presume che il programmatore sappia esattamente cosa sta facendo, e se no, è il problema del programmatore, non il problema del compilatore.
C ++ di solito non consente le cose che potrebbero potenzialmente essere degli errori e richiede che tu dichiari esplicitamente la tua intenzione con un cast di tipo. Questo perché il C ++ sta cercando di essere programmatore-friendly.
Potresti chiedere come mai è amichevole quando in realtà ti richiede di digitare altro.
Bene, vedi, ogni linea di codice, in qualsiasi programma, in qualsiasi linguaggio di programmazione, verrà generalmente letta molte più volte di quanto non verrà scritto (*). Quindi, la facilità di lettura è molto più importante della facilità di scrittura. E quando si legge, avere qualsiasi conversione potenzialmente pericolosa si distingue per mezzo di cast di tipi espliciti aiuta a capire cosa sta succedendo e ad avere un certo livello di certezza che ciò che sta accadendo è in realtà ciò che era destinato ad accadere.
Inoltre, l'inconveniente di dover digitare il cast esplicito è banale rispetto all'inconveniente di ore e ore di risoluzione dei problemi per trovare un bug che è stato causato da un incarico errato di cui avresti potuto essere avvisato, ma non lo sei mai stato.
(*) Idealmente verrà scritto una sola volta, ma verrà letto ogni volta che qualcuno dovrà esaminarlo per determinarne l'idoneità al riutilizzo e ogni volta che si verificherà la risoluzione dei problemi e ogni volta che qualcuno dovrà aggiungere del codice vicino ad esso, e poi ogni volta che c'è la risoluzione dei problemi del codice vicino, e così via. Questo è vero in tutti i casi tranne che per gli script "write-once, run, then throw away" e quindi non c'è da meravigliarsi che la maggior parte dei linguaggi di scripting abbia una sintassi che facilita la facilità di scrittura con totale disprezzo per facilitare la lettura. Hai mai pensato che perl sia completamente incomprensibile? Non sei solo. Pensa a linguaggi come "lingue di sola scrittura".