Stvarno je ovaj C++.NET nevjerovatan.
Imam 5 klasa: KlasaBazna
KlasaIzvedena1
KlasaIzvedena2
KlasaSaKontejnerima
KlasaKorisnickiException
Sve se klase nalaze u istom namespace-u. I sve su pisane u zasebnim fajlovima sa deklaracijama u .h fajlovima i implementacijama u .cpp fajlovima.
sada: public __gc class KlasaIzvedena1:public KlasaBazna
public __gc class KlasaIzvedena2:public KlasaBazna
naravno u .h fajl izvedenih klasa ukljucio .h fajl bazne klase KlasaBazna (#include "KlasaBazna.h")
---------------------------------------------------------------------------
PARADOX1
KlasaSaKontejnerima sadrzi objekte klasa KlasaIzvedena1 i KlasaIzvedena2:
KlasaIzvedena1 * ptr1;
KlasaIzvedena2 * ptr2;
naravno u KlasaSaKontejnerima.h fajl ukljucio KlasaIzvedena1(2).h
sve radi BEZ PROBLEMA
---------------------------------------------------------------------------
PARADOKS2
Sada u KlasaIzvedena1(2) mi treba objekat klase KlasaKorisnickiException, i da bih ga napravio moram u KlasaIzvedena1(2).h ukljuciti KlasaKorisnickiException.h
i sta se desava??
error: class type redefinition i pokazuje na KlasaKorisnickiException
jasno mi je da je to zbog toga sto u KlasaSaKontejnerom.h imam #include "KlasaIzvedena1" i #include "KlasaIzvedena2" a posto je u obe klase ukljucen KlasaKorisnickiException.h kao da ga dva puta ispisuje!
Ali zasto je prije toga radilo bez problema (POGLEDATI PARADOX1).
-----------------------------------------------------------------------------
Problem sam resio kasnije drugacijim dizajnom, ali i dalje me ovaj paradoks zbunjuje!!??




Ludorije u C++.NET-u
Re: Ludorije u C++.NET-u
