في درس الثوابت (برمجة كائنية) في لغة السي بلس بلس، لماذا يقبل المترجم تغيير القيمة الثابتة التي نرسلها للدالة في حال الإرجاع return؟
#include <iostream> using namespace std; // أيضاً double و عند استدعاءها يجب أن نمرر لها إسم متغير ثابت نوعه double ترجع قيمة نوعها finalPrice هنا قمنا بتعريف دالة إسمها double finalPrice(const double n) { // هنا كتبنا معادلة القيمة التي سترجعها الدالة و التي ستعطي في النهاية قيمة العدد الذي نمرره لها - 20% منها return n - (n * 0.2); } // main() هنا قمنا بتعريف الدالة int main() { // يمثل سعر منتج و قيمته تساوي 50 price هنا قمنا بتعريف متغير إسمه const double price = 50; // و طباعة النتيجة النهائية التي سيتم إرجاعها على أنها السعر النهائي بعد الحسم finalPrice() للدالة price هنا قمنا بتمرير قيمة المتغير cout << "Price after 20% sold = " << finalPrice(price) << "$"; return 0; }
أقصد لم لا يمكن كتابتها بهذه الطريقة؟
n = n - (n * 0.2); return n;