لماذا يقبل المترجم تغيير القيمة الثابتة التي نرسلها للدالة في سي بلس بلس؟
في درس الثوابت (برمجة كائنية) في لغة السي بلس بلس، لماذا يقبل المترجم تغيير القيمة الثابتة التي نرسلها للدالة في حال الإرجاع return؟
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;