C++ programming language part- 58 Ambiguity of Multiple Classes
Ambiguity
of Multiple Classes
When a class inherits from multiple base classes, the compiler
become ambiguous. The ambiguity can be resolve using the scope resolution
operator or it can also be resolved by redefined in the derived class.
Program 43_2
// Ambigious multiple inherit
class
A //base class defined
{
protected:
int p1;
// to get it from
derived class
public:
void data_out()
{
cout<<" The verible of first base
class is "<
}
};
class B //base
class defined
{
protected:
int p2;
// to get it from
derived class
public:
void data_out()
{
cout<<" The verible of second
base class is "<
}
}; // here are two base class named A & B
class derived:public A,public B //multiple
inheritance of class
{
public:
void data_get(int x,int y)
{
p1=x;
p2=y;
}
}; // this is derived class named derived
void main()
{
derived K;
// K is called object
K.data_get(25,50);
//K.data_out(); // would flag an error, cause these are ambigious
//K.data_out();
K.A::data_out(); // Data will get from class A
K.B::data_out(); // Data will get from class B
}
Program 43_3
// Ambigious multiple inherit
class
A //class defined
{
protected:
int p1;
// to get it from derived class
public:
void data_out()
{
cout<<" The verible of first base
class is "<
}
};
class B //class
defined
{
protected:
int p2;
// to get it from derived class
public:
void data_out()
{
cout<<" The verible of second
base class is "<
}
}; // here are two base class named A
& B
class derived:public A,public B // multiple inheritance of base class
{
void data_get(int x,int y)
{
p1=x;
p2=y;
}
void data_out()
{A::data_out(); // Data will get from class A, called
redifined
B::data_out();} // Data
will get from class B, called redefined
};
void main()
{ derived K;
// K is called object
K.data_get(25,50);
K.data_out();} // these are not
ambigious
Part- 86 assign the content of twostring
জ্ঞানকোষ প্রকাশনী
৩৮/২-ক, বাংলাবাজার (২য় তলা), ঢাকা।
ফোনঃ ৭১১৮৪৪৩, ৮১১২৪৪১, ৮৬২৩২৫১.
কলকাতায় পরিবেশক/প্রাপ্তিস্থান
রিতা ইন্টারন্যাশনাল
৩৬, পি.এন. ব্যানার্জি রোড, কলকাতা
ফোনঃ ২৫১৩৮৩৫৯, ৯৮৩০৪৩৯৬৭৯, +৯১৯৮৩০৪৩৯৬৭৯