There is a work a round (included for completeness).

On Tue, Jun 19, 2012 at 9:15 AM, Zbigniew Komarnicki <cblas...@gmail.com>
 wrote:

> Hello
>
> Why this below program do not compile under g++.
> What is the reason, that g++ do not compile ?
>
> //------------------------------------------------------
> // file: problem.cpp
> #include<iostream>
> using namespace std;
>
> class A { public: void out() { cout << "A" << endl; } };
> class B: public A { public: void out() { cout << "B" << endl; } };
> class C: public A { public: void out() { cout << "C" << endl; } };
> class D: public A { public: void out() { cout << "D" << endl; } };
> class E: public C, public D { public: void out() { cout << "E" << endl; }
> };
>
> int main()
> {
> E e;
>
>  e.out();
>  e.C::out();
>  e.D::out();
>
//instead of these 2 lines

>  e.C::A::out();
>  e.D::A::out();
>
//use the following (obvious work a round for the previous 2 line, though
it should be unnecessary)
//  C c=e;
//  c.A::out();
//  D d=e;
//  d.A::out();

>
>  return 0;
> }
> //------------------------------------------------------
>
> I compile it in this way:
>
> $ g++ -Wall problem.cpp -o problem
> problem.cpp: In function ‘int main()’:
> problem.cpp:17: error: ‘A’ is an ambiguous base of ‘E’
> problem.cpp:18: error: ‘A’ is an ambiguous base of ‘E’
>
> I check it under Squueze:
>
> $ g++ --version
> g++ (Debian 4.4.5-8) 4.4.5
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> My colleague check it under Windows and it compile and run under MV Studio
> 2010 without any problems. The result is as expected:
> E
> C
> D
> A
> A
>
> Is it a bug in g++ compiler under Debian?
>
> Zbigniew
>
>
> --
> To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmas...@lists.debian.org
> Archive: http://lists.debian.org/201206191515.00919.cblas...@gmail.com
>
>

Reply via email to