Saya mengerti bahwa menurut spesifikasi C ++ tidak ada yang namanya "metode", dan beberapa (banyak? Kebanyakan?) Programmer C ++ menganggap "metode" sebagai Java-isme. Di sisi lain, bahkan di forum C ++ orang-orang tampaknya berbicara tentang metode tanpa kedutan. Saya mencari konvensi yang diketahui atau praktik umum mengenai terminologi ini.
Saya mendokumentasikan API yang memiliki versi C ++ dan Java. Para pengembang benar-benar menjaga nama kelas dan metode / anggota-fungsi yang sama antara keduanya, mungkin untuk kelayakan dalam porting dan pengujian. Karena itu, beberapa dari apa yang perlu didokumentasikan tentang API ini berada "di atas" pilihan bahasa; Saya harus dapat berbicara secara umum tentang Foos and Bars, dengan metode baz () dan mumble () ...?
Jika saya berbicara tentang metode, pemrogram Java akan menganggapnya alami dan, tampaknya, pemrogram C ++ mungkin akan mengerti tetapi beberapa akan menganggapnya tidak benar. Pertanyaan saya adalah: seberapa serakah ini dalam praktek ? Bagaimana fungsi anggota C ++ secara konvensional dibicarakan dalam konteks "OOP umum", yang bertentangan dengan fungsi khusus C ++? Apakah ada cara yang lebih baik untuk berbicara tentang fungsi anggota dengan cara yang tidak salah untuk kedua bahasa? ("Fungsi anggota" sedikit bertele-tele.)
Ini bukan survei opini; Saya mencoba menentukan apakah ada konvensi aktual atau praktik umum untuk mengatasi masalah ini.
Saya mengetahui pertanyaan ini , tetapi ini tentang OOP secara umum dan tidak bertanya tentang bahasa tertentu.
sumber
Jawaban:
Mengapa Anda tidak memasukkan penjelasan (seperti yang Anda lakukan dalam pertanyaan) di bagian pengantar dokumentasi, misalnya bagian Konvensi ? Kemudian Anda dapat menjelaskan bahwa istilah "metode", seperti yang digunakan dalam dokumentasi Anda, dimaksudkan dalam arti umum metode (Java), fungsi anggota (C ++), ... karena dokumentasi berlaku untuk semua implementasi.
sumber
Nah, Anda tidak akan dieksekusi karenanya.
Keluhan di dunia C ++ bukan salah benar benar: itu salah satu ambiguitas. Ada begitu banyak jenis "metode" di luar sana di hutan belantara tergantung pada domain apa yang Anda bicarakan, sehingga banyak dari kita lebih suka berpegang pada terminologi standar untuk menghindari kesalahpahaman nantinya. Itu berarti, secara umum, "fungsi statis / [non-statis] [murni] virtual / [non-virtual]".
Jika Anda menulis "metode" dalam dokumentasi Anda, bukan, beberapa C ++ programmer mungkin mengeluh bahwa itu tidak benar-benar jelas apa yang Anda bicarakan, atau khawatir bahwa jika Anda tidak terbiasa dengan ini C ++ konvensi, apa yang orang lain Anda hilang?
Tapi saya yakin ada jutaan programmer C ++ profesional yang mereka sendiri tidak tahu bahwa ini adalah suatu hal. Ini dunia yang besar.
Anda tidak akan dieksekusi karenanya.
sumber
Eiffel menyebutnya Rutinitas atau Fitur , C ++ menyebutnya Fungsi Anggota , dan (hampir) setiap bahasa OO lainnya yang pernah dibuat dalam seluruh sejarah komputasi, baik sebelum maupun setelah C ++ menyebutnya sebagai Metode , sehingga istilah yang terakhir umumnya harus dipahami bahkan oleh Pemrogram C ++ (dan Eiffel), kecuali mereka benar - benar belum pernah mendengar tentang Simula, Smalltalk, Self, Objective-C, Newspeak, Java, C #, VB.NET, PHP, Python, Ruby, ECMAScript / JavaScript, Scala, CoffeeScript,…
sumber