निम्नलिखित कोड पर विचार करें:क्या प्रारंभिक सूची में निजी फ़ंक्शंस कॉल के मामले में यह अनिर्धारित व्यवहार है?
struct Calc
{
Calc(const Arg1 & arg1, const Arg2 & arg2, /* */ const ArgN & argn) :
arg1(arg1), arg2(arg2), /* */ argn(argn),
coef1(get_coef1()), coef2(get_coef2())
{
}
int Calc1();
int Calc2();
int Calc3();
private:
const Arg1 & arg1;
const Arg2 & arg2;
// ...
const ArgN & argn;
const int coef1; // I want to use const because
const int coef2; // no modification is needed.
int get_coef1() const {
// calc coef1 using arg1, arg2, ..., argn;
// undefined behavior?
}
int get_coef2() const {
// calc coef2 using arg1, arg2, ..., argn and coef1;
// undefined behavior?
}
};
struct Calc
पूरी तरह से परिभाषित नहीं है जब मैं get_coef1
फोन और get_coef2
इस कोड को मान्य है? क्या मुझे यूबी मिल सकती है?
यह काम करता है ... लेकिन आप स्वयं को परेशानी के लिए सेट अप करते हैं। क्या होता है जब रखरखाव आता है, कोफ के बाद 'argZ' जोड़ें, और फिर गणना में' argZ' का उपयोग करता है? आपके पास यूबी होगा ... –