C ++ lebih dari satu bahasa pemrograman:
a) Ini "lebih baik" C b) Ini adalah bahasa yang berorientasi objek c) Ini adalah bahasa yang memungkinkan kita untuk menulis program generik
Meskipun semua fitur ini dapat digunakan secara terpisah, hasil terbaik dicapai ketika ketiganya digunakan secara bersamaan. Meskipun demikian, jika Anda memilih untuk memilih salah satunya saja, kualitas perangkat lunak yang disematkan akan meningkat.
a) Ini "lebih baik" C
C ++ adalah bahasa yang diketik dengan kuat; lebih kuat dari C. Program Anda akan mendapat manfaat dari fitur ini.
Beberapa orang takut akan petunjuk. C ++ termasuk referensi. Fungsi kelebihan beban.
Dan layak untuk dikatakan: Tidak satu pun dari fitur ini muncul dalam program yang lebih besar atau lebih lambat.
b) Bahasa ini berorientasi pada objek
Seseorang berkata dalam posting ini bahwa mengabstraksikan mesin dalam mikrokontroler bukanlah ide yang baik. Salah! Kita semua, para insinyur yang tertanam, selalu mengabstraksi mesin, hanya dengan sintaks lain yang dari C ++. Masalah yang saya lihat dengan argumen ini adalah bahwa beberapa programmer tidak terbiasa berpikir dalam objek, dengan begitu mereka tidak melihat manfaat dari OOP.
Setiap kali Anda siap untuk menggunakan perangkat mikrokontroler, kemungkinan perangkat tersebut telah diabstraksikan untuk kami (dari Anda sendiri atau pihak ketiga) dalam bentuk driver perangkat. Seperti yang saya katakan sebelumnya, driver itu menggunakan sintax C, seperti contoh berikut menunjukkan (diambil langsung dari contoh NXP LPC1114):
/ * Pengaturan timer untuk pertandingan dan interupsi di TICKRATE_HZ * /
Chip_TIMER_Reset (LPC_TIMER32_0);
Chip_TIMER_MatchEnableInt (LPC_TIMER32_0, 1);
Chip_TIMER_SetMatch (LPC_TIMER32_0, 1, (timerFreq / TICKRATE_HZ2));
Chip_TIMER_ResetOnMatchEnable (LPC_TIMER32_0, 1);
Chip_TIMER_Enable (LPC_TIMER32_0);
Apakah Anda melihat abstraksi? Jadi, ketika menggunakan C ++ untuk tujuan yang sama, abstraksi dibawa ke tingkat berikutnya melalui mekanisme abstraksi dan enkapsulasi C ++, tanpa biaya!
c) Ini adalah bahasa yang memungkinkan kita untuk menulis program generik
Program generik dicapai melalui templat, dan templat juga tidak memiliki biaya untuk program kami.
Selain itu, polimorfisme statis dicapai dengan templat.
Metode virtual, RTTI, dan pengecualian.
Ada kompromi ketika menggunakan metode virtual: perangkat lunak yang lebih baik vs beberapa penalti dalam kinerja. Namun, ingat bahwa pengikatan dinamis kemungkinan akan diimplementasikan menggunakan tabel virtual (array pointer fungsi). Saya telah melakukan hal yang sama di C berkali-kali (bahkan secara teratur), jadi saya tidak melihat kekurangan dalam menggunakan metode virtual. Selain itu, metode virtual dalam C ++ lebih elegan.
Akhirnya, saran tentang RTTI dan pengecualian: JANGAN GUNAKAN MEREKA dalam sistem embedded. Hindari mereka sama sekali !!