मैं एक वर्ग बनाना चाहता हूं, जिसमें दो पूर्णांक सदस्य चर हैं, और एक फ़ंक्शन जिसमें दो वैकल्पिक तर्क हैं। यदि इन तर्कों की आपूर्ति की जाती है, तो फ़ंक्शन उनका योग देता है; यदि इन तर्कों की आपूर्ति नहीं की जाती है, तो फ़ंक्शन अपने दो सदस्य चर के योग को वापस कर देता है।गैर-स्थैतिक सदस्य चर के रूप में डिफ़ॉल्ट तर्क
यहाँ कोड है:
class Foo
{
private:
int x_;
int y_;
public:
Foo(int x, int y) : x_(x), y_(y){}
int Bar(int a = x_, int b = y_)
{
int z = a + b;
return z;
}
};
हालांकि, मैं निम्नलिखित संकलन त्रुटि मिलती है:
invalid use of non-static data member 'Foo::x_'
int x_;
^
invalid use of non-static data member 'Foo::y_'
int y_;
^
यह पता चलता है कि सदस्य चर में डिफ़ॉल्ट तर्क के रूप में उन्हें में उपयोग करने के लिए स्थिर होना जरूरी एक समारोह। लेकिन मैं नहीं चाहता कि वे स्थिर हों ...
समाधान क्या है?
हाँ, वे स्थिर होने के लिए, देखना है (http://stackoverflow.com/q/ 27018251/1708801) –