निम्न कोड चेतावनी C4250 उत्पन्न करता है। मेरा सवाल है, इसका सबसे अच्छा समाधान क्या है?विजुअल स्टूडियो कंपाइलर चेतावनी C4250 ('class1': विरासत के वर्ग 2 :: सदस्य 'प्रभुत्व के माध्यम से)
class A
{
virtual void func1();
}
class B : public A
{
}
class C : public A
{
virtual void func1();
}
class D : public B, public C
{
}
int main()
{
D d;
d.func1(); // Causes warning
}
मैं क्या यह ऐसा करने के लिए संभव हो जाना चाहिए पढ़ा है के अनुसार:
class D : public B, public C
{
using B::func1();
}
लेकिन, यह वास्तव में कुछ भी नहीं है। जिस तरह से मैं वर्तमान में इसका समाधान कर लिया है:
class D : public B, public C
{
virtual void func1() { B::func1(); }
}
क्या इस पर हर किसी का नजरिया है?
पहले ब्लॉक में कोड संकलित नहीं करता है और इसे संकलित करने के बाद इसे बदलने के बाद यह C4250 उत्पन्न नहीं करता है। – quamrana