C dan C ++ memiliki banyak perbedaan, dan tidak semua kode C yang valid adalah kode C ++ yang valid.
(Dengan "valid" maksud saya kode standar dengan perilaku yang ditentukan, yaitu tidak spesifik implementasi / tidak terdefinisi / dll.)
Apakah ada skenario di mana sepotong kode valid dalam C dan C ++ akan menghasilkan perilaku yang berbeda ketika dikompilasi dengan kompiler standar di setiap bahasa?
Untuk menjadikannya perbandingan yang masuk akal / berguna (saya mencoba mempelajari sesuatu yang praktis berguna, bukan mencoba menemukan celah yang jelas dalam pertanyaan), mari kita asumsikan:
- Tidak ada yang terkait dengan preprosesor (yang berarti tidak ada peretasan
#ifdef __cplusplus
, pragma, dll.) - Implementasi apa pun yang didefinisikan adalah sama di kedua bahasa (misalnya batas numerik, dll.)
- Kami membandingkan versi terbaru dari setiap standar (mis. Katakan, C ++ 98 dan C90 atau lebih baru).
Jika versi penting, maka tolong sebutkan versi masing-masing yang menghasilkan perilaku yang berbeda.