सी ++ में सदस्य फ़ंक्शन घोषणा में अस्थिर कीवर्ड की स्थिति

क्या विधि घोषणा में 'अस्थिर' कीवर्ड की स्थिति इसकी कार्यक्षमता को प्रभावित करती है?

यानी, कोड के निम्नलिखित दो टुकड़ों के बीच कोई अंतर है?

ए।

class Test
{
public:
    volatile void testMe() 
    {
    }
};

बी

class Test
{
public:
    void testMe() volatile 
    {
    }
};

और वही होता है जब सदस्य फ़ंक्शन का रिटर्न वैल्यू होता है। धन्यवाद!

0
जोड़ा
विचारों: 1

2 उत्तर

const पर लागू होने वाले वही नियम अस्थिर पर लागू होते हैं।

शून्य लौटने पर (बदले में वापस नहीं), अस्थिर पहले स्निपेट में बेकार है।

दूसरा स्निपेट पूरी विधि को अस्थिर के रूप में चिह्नित करता है।

उदाहरण के लिए, यदि आपके पास है:

volatile Test m;
m.testMe();

केवल संकलन testMe को volatile के रूप में चिह्नित किया गया है (जैसे आपका दूसरा कोड)।

0
जोड़ा

यह const qualifier के समान है।

पहले उदाहरण में, अस्थिर फ़ंक्शन के वापसी मान पर लागू होता है। यह इस मामले में शून्य है, इसलिए यह ज्यादा समझ में नहीं आता है। वास्तव में, यह अस्थिर मूल्य * द्वारा लौटने के लिए अधिक समझ में नहीं आता है। एक अस्थिर वापसी प्रकार केवल संदर्भ के लिए समझ में आता है:

volatile int& foo() { ... }
volatile int& i = foo();//OK
int j = foo();//OK, use the volatile reference to construct a non volatile int
int& j = foo();//Error!

दूसरे मामले में, इसका मतलब है कि विधि अस्थिर है, इसलिए इसे क्लास <�कोड> टेस्ट के अस्थिर उदाहरण और अस्थिर उदाहरणों पर कॉल किया जा सकता है । अस्थिर क्वालीफायर के बिना एक समान विधि को अस्थिर उदाहरण पर नहीं कहा जा सका।

Test test0;
test0.testMe();//OK
volatile Test test1;
test1.testMe();//OK
test1.someNonVolatileMethod();//Error.

*Unless that value is a pointer

0
जोड़ा
यह अस्थिर वर्ग प्रकार को मूल्य के आधार पर वापस करने का अर्थ भी बना सकता है ताकि अस्थायी पर केवल अस्थिर सदस्य कार्यों को बुलाया जा सके। मैं यह नहीं कह रहा हूं कि मैंने कभी यह देखा है, लेकिन यह उचित प्रतीत होता है।
जोड़ा लेखक edA-qa mort-ora-y, स्रोत
@ edA-qamort-ora-y मुझे गंभीरता से उस बारे में सोचना है। मुझे लगता है कि आपने एक ऐसे मामले की पहचान की है जहां यह const से अलग है, जहां एक const वापसी मान गड़बड़ कर देगा semantics ले जाएँ।
जोड़ा लेखक juanchopanza, स्रोत