मैं हाल ही में नीचे दिए गए कोड (सरलीकृत नीचे दिए गए संस्करण) मेरी कोड बेस में देखा था और इस संदेह हो गया है:वास्तविक चर के संदर्भ में पॉइंटर संदर्भ और पॉइंटर के समान व्यवहार किया जा सकता है?
class B;
class A
{
public:
A():m_A("testA"){}
B& getB()
{
return m_B;
}
B* getBPtr() //== > written to explain the problem clearly
{
return &m_B;
}
private:
B m_B;
};
class B
{
public:
B(const std::string& name):m_Name(name){}
std::string getName() const
{
return m_Name;
}
private:
std::string m_Name;
};
class C
{
public:
void testFunc(B* ptr)
{
}
};
int main()
{
A a;
C c;
c.testFunc(&a.getB()); ===> is it equivalent to c.testFunc(a.getBPtr()) ?
}
- सूचक संदर्भ के लिए और वास्तविक चर सूचक एक ही माना जा सकता है?
- क्या मानक संदर्भ के पते पर वैरिएबल के पते के लिए उपयोग किए जाने वाले विनिमेय होने के संदर्भ में कुछ भी कहता है।
मुझे खुशी है कि आपने इसे स्पष्ट किया है। ;-) –
हमम ... मैं अभी भी मानक से लाइन के साथ उलझन में हूँ। मैं मानक से उस रेखा को व्याख्या कर रहा था ---- हमें संदर्भ में पॉइंटर्स लेने की कोशिश नहीं करनी चाहिए। मतलब, संदर्भ का पता इस्तेमाल नहीं किया जाना चाहिए। –
@ एजे नहीं, इसका मतलब है कि आप 'बी & *' प्रकार के प्रकार घोषित नहीं कर सकते हैं। –