में केवल पढ़ने योग्य संपत्ति के रूप में संदर्भ संदर्भ फ़ील्ड सी ++ कक्षाओं में एक पाठक गेटटर के रूप में एक कॉन्स्ट संदर्भ फ़ील्ड का उपयोग करना अच्छा है?सी ++ वर्ग
मेरा मतलब है, क्या यह कोड अच्छी प्रथाओं को पूरा करता है?
class check{
private:
int _x;
public:
const int& x = _x;
void setX(int v){
_x = v;
}
};
यह बहुत सी # गुण, IMHO की तरह काम कर रहा है, और बहुत आसान और वर्ग उपयोग कोड में साफ:
check s;
int i;
std::cin >> i;
s.setX(i);
std::cout << s.x << '\n';
s.setX(7);
// s.x = i; // Error
std::cout<<s.x<<'\n';
और इसे विस्मरण के लिए कास्ट किया जा सकता है :) – StoryTeller
नहीं, यह एक बुरा अभ्यास है क्योंकि इस संदर्भ को संग्रहीत करने से एक सीधी मेलाइन गेटटर फ़ंक्शन की तुलना में अतिरिक्त मेमोरी ओवरहेड हो सकता है। एक और बात यह है कि आप मूल्य तक पहुंचने के बावजूद रनटाइम चेक/आवेषण निष्पादित करने में सक्षम नहीं होंगे। दुर्भाग्य से सी # गुणों का अनुकरण करने के लिए कोई वास्तविक तरीका नहीं है-सिंटैक्स की तरह। एक [एमएस-विशिष्ट 'संपत्ति' एक्सटेंशन] (https://docs.microsoft.com/en-us/cpp/cpp/property-cpp) था लेकिन वे गैर-मानक हैं और उन्हें छोड़ दिया गया था। – VTT
किसी को 'चेक' असाइन करने का प्रयास करें। – molbdnilo