سؤال

ويقول لدي فئة:

class A
{
 public:
 A() {}
};

وظيفة:

void x(const A & s) {}

ووأفعل:

x(A());

ويمكن للشخص الرجاء شرح لي القواعد المتعلقة بتمرير الكائنات المؤقتة بالرجوع؟ من حيث ما يسمح للمترجم، حيث كنت في حاجة CONST، إذا حصلت على نسخة ضمنية، وما إلى ذلك من اللعب حولها، فإنه يبدو وكأنه كنت في حاجة إلى CONST الأمر الذي يجعل الشعور، ولكن هناك قاعدة رسمية بشأن كل هذا؟

وشكرا!

هل كانت مفيدة؟

المحلول

وهناك قاعدة رسمية - الرسمي C ++ (قسم 13.3.3.1.4 إذا كنت مهتما) تنص على أنه مؤقت يمكن أن تكون ملزمة فقط للإشارة CONST - إذا حاولت استخدام مرجع غير CONST يجب على المترجم علم هذا أنه خطأ.

نصائح أخرى

وعشب سوتر يقوم بعمل جيد شرح هنا: http://www.gotw.ca /gotw/081.htm

س () يجب إما أن تتخذ مرجعا CONST إلى A مؤقت، أو الأشعة () يجب أن يأخذ وكل قيمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top