मेरे पास 2 डी सरणी है और मैं उस फ़ंक्शन को परिभाषित करना चाहता हूं जो इंडेक्स का मान देता है जो उपयोगकर्ता मुझे ऑपरेटर ओवरलोडिंग का उपयोग करता है। दूसरे शब्दों में:ऑपरेटर ओवरलोडिंग [] [] 2 डी सरणी सी ++
void MyMatrix::ReturnValue()
{
int row = 0, col = 0;
cout << "Return Value From the last Matrix" << endl;
cout << "----------------------------------" << endl;
cout << "Please Enter the index: [" << row << "][" << col << "] =" << ((*this).matrix)[row][col] << endl;
}
आपरेशन ((*this).matrix)[row][col]
एक int
लौटना चाहिए। मुझे नहीं पता कि operator [][]
कैसे बनाया जाए।
वैकल्पिक रूप से, मैं operator []
पर कुछ कॉलों को जोड़ सकता था, लेकिन मैं इसमें सफल नहीं हुआ, क्योंकि उस ऑपरेटर को पहला कॉल int*
लौटाएगा और दूसरा int
लौटाएगा, और यह एक और ऑपरेटर बनाने के लिए मजबूर होगा, और मैं ऐसा नहीं करना चाहता।
मैं क्या कर सकता हूं? धन्यवाद,
सीधे शब्दों में है, [इस तरह के एक ऑपरेटर मौजूद नहीं है] (http://en.cppreference.com/w/cpp/ देख सकते हैं भाषा/ऑपरेटरों), तो आप इसे अधिभारित नहीं कर सकते हैं। – skypjack
ठीक है, इसका मतलब है कि मुझे ऑपरेटर [] के लिए दो फ़ंक्शन बनाना है, क्योंकि यदि मैं ऐसा करता हूं: '(((* यह) .matrix) [पंक्ति]) [col] 'तो पहला ऑपरेटर int * और दूसरा int। – LIMA
@lilach दिखाएं कि डेटा सदस्य मैट्रिक्स कैसे परिभाषित किया गया है। –