Avatar billede mxs Nybegynder
23. januar 2007 - 17:21 Der er 3 kommentarer og
1 løsning

Multi nedarvningen virker ikke

Hej

Jeg arbejder på et socket projekt og er ved at lave exceptions delen til den men jeg har løbet ind i nogle problemer.
jeg prøver at lave noget ala

          --------socketException-------
          |                            |
          |                            |
        iException                oException
          |                            |
          |                            |
          ------------------------------
                        |
                        |
                    ioException

Selve klasserne har jeg til at ligge her: http://files.sigsys.dk/Socket%20v1/

Men jeg får følgende fejl når jeg kompiler den med gcc (version 3.3.5):
~/Programmering/C++/Socket/v1/Exceptions $ g++ iException.cpp oException.cpp ioException.cpp socketException.cpp
ioException.cpp: I constructor 'ioException::ioException()':
ioException.cpp:7: error: request for member `error' is ambiguous in multiple
  inheritance lattice
socketException.h:12: error: candidates are: std::string socketException::error
socketException.h:12: error:                std::string socketException::error
ioException.cpp: I constructor '
  ioException::ioException(std::basic_string<char, std::char_traits<char>,
  std::allocator<char> >)':
ioException.cpp:13: error: request for member `error' is ambiguous in multiple
  inheritance lattice
socketException.h:12: error: candidates are: std::string socketException::error
socketException.h:12: error:                std::string socketException::error
~/Programmering/C++/Socket/v1/Exceptions $

Jeg kan ikke regne ud hvorfor jeg får fejlen, så lidt hjælp ville være dejligt da jeg har sat med problemet i lidt tid og derfor gerne vil videre.

På forhånd tak,
Martin Slot
Avatar billede lars314 Nybegynder
23. januar 2007 - 21:35 #1
Jeg tror du er offer for "the dreaded diamond"

http://www.parashift.com/c++-faq-lite/multiple-inheritance.html#faq-25.8
Avatar billede mxs Nybegynder
23. januar 2007 - 22:08 #2
lars314 >> Det hjalp :) Tak for det. Kunne godt se på gcc at det havde noget at gøre med at der var to kopier af samme base klasse. Har brugt hele dagen på at finde ud af hvordan man kunne lave kun en kopi.
Smid et svar og du vil få nogle point.
Avatar billede lars314 Nybegynder
24. januar 2007 - 08:50 #3
Ok

Hvis du vil arbejde meget med C++, så tag og læs Marshall Cline's C++ FAQs.
Der står rigtigt mange gode ting. Jeg kan også anbefale bogen.
Avatar billede mxs Nybegynder
24. januar 2007 - 15:53 #4
Jeg arbejder lidt med C++. Har jeg gjort i nogle år nu, men jeg mangler stadig erfaring i sproget. Men jeg vil ihvertfald læse den FAQ og tage et nærmere kig på bogen. Tak for hjælpen lars314
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester