संभव डुप्लिकेट:2 लूप चर के साथ सी ++ में फॉर-लूप लिखना इतना कठिन क्यों है?
int myIndex; for (myIndex=0;myIndex<10;++myIndex) ...
एक C++ डेवलपर इस लिखते थे पाश के बाहर लीक से पाश चर को रोकने के लिए:
In C++ why can’t I write a for() loop like this: for(int i = 1, double i2 = 0; …
एसी डेवलपर इस बारे में होगा:
for (int myIndex=0;myIndex<10;++myIndex) ...
हालांकि, यदि आपके पास 2 लूप चर हैं, तो आप इसे और नहीं कर सकते हैं। निम्नलिखित संकलित करता है नहीं:
for (int myIndex=0,MyElement *ptr=Pool->First;ptr;++myIndex,ptr=ptr->next) ...
अल्पविराम ऑपरेटर दो चर इस तरह से परिभाषित किया जा करने की अनुमति नहीं है, तो हम इसे इस तरह लिखने के लिए है:
int myIndex;
MyElement *ptr;
for (myIndex=0,ptr=Pool->First;ptr;++myIndex,ptr=ptr->next) ...
कौन सा होने का लाभ धरा वास्तविक पाश-स्थानीय चर।
एक समाधान इस तरह, ब्रेसिज़ के बीच पूरे निर्माण डाल करने के लिए हो सकता है:
{
int myIndex;
MyElement *ptr;
for (myIndex=0,ptr=Pool->First;ptr;++myIndex,ptr=ptr->next) ...
}
लेकिन यह शायद ही और अधिक सुरुचिपूर्ण है।
क्या सी ++ (या सी ++ 0x) में ऐसा करने का कोई बेहतर तरीका नहीं है?
क्यों एक सी प्रोग्रामर जरूरी पाश ऊपर चर जाते थे? – GManNickG
@GMan इसे कथन के अंदर घोषित करना केवल सी 99 के बाद मान्य है, आईआईआरसी – Wim
@Wim: जो 11 साल पहले था। :) – GManNickG