मैं एक वर्ग में एक संरचना को परिवर्तित कर रहा था ताकि मैं अपने चर के लिए एक सेटर इंटरफेस को लागू कर सकूं।
मैं उन सभी उदाहरणों को बदलना नहीं चाहता था जहां चर पढ़ा गया था, हालांकि।इस सी ++ कॉन्स संदर्भ एक्सेसर इंटरफ़ेस idiom के साथ कोई समस्या है?
struct foo_t {
int x;
float y;
};
इस के लिए
: तो मैं इस परिवर्तित
class foo_t {
int _x;
float _y;
public:
foot_t() : x(_x), y(_y) { set(0, 0.0); }
const int &x;
const float &y;
set(int x, float y) { _x = x; _y = y; }
};
मैं इस में दिलचस्पी रखता हूँ, क्योंकि यह सी # के सार्वजनिक केवल पढ़ने के लिए गुण के विचार मॉडल करने के लिए लगता है।
ठीक संकलित करता है, और मैंने अभी तक कोई समस्या नहीं देखी है।
कन्स्ट्रक्टर में कॉन्स्ट संदर्भों को जोड़ने के बॉयलरप्लेट के अलावा, इस विधि के डाउनसाइड्स क्या हैं?
कोई अजीब एलियासिंग मुद्दे?
मैंने इस मुहावरे को पहले क्यों नहीं देखा है?
स्थिरांक पूर्णांक और एक्स क्यों है, कॉन्स फ्लोट और वाई; आवश्यक? – Arun
@ अरुणशाहा वह बताते हैं कि उनके प्रश्न में। इसका उद्देश्य 'x' और' y' को "एक्सेसर" प्रदान करना है जो संरचना में चरों तक पहुंच के समान सिंटैक्स को बनाए रखता है। –
सी # और सी ++ अपनी शैलियों और उपयोगों के साथ पूरी तरह से अलग भाषाएं हैं। दूसरी भाषा में एक भाषा की शैली की प्रतिलिपि बनाना बहुत सारी परेशानी का कारण बन रहा है, नई भाषा के लिए सबसे अच्छी तकनीक सीखना बहुत आसान है, जो ऐसी शैलियों की प्रतिलिपि नहीं है जो संगत नहीं हो सकते हैं (जैसे कि गेटर/सेटर की भयानक अवधारणा) –