[nem-pl] Dziedziczenie, i makra c.d.
Kamil Skalski
nazgul at omega.pl
Fri Mar 19 09:28:45 CET 2004
Friday 19 of March 2004 03:47, Pawel Rozanski wrote:
> Cześć,
> Czy można dziedziczyć konstruktor? a z klasy C#?
Konstruktor jest dziedziczony pewnie w momencie gdy nie ma żadnego nowego
pola.. ale nie jestem tego pewien. Wiem np. że automatycznie dorabiane są
konstruktory z bazowymi polami (jak również z wszystkimi polami, jeśli nie
został żaden ręcznie podany):
class A { a : int } <= A(1)
class B : A { b : int } <= B(1,1), B(1)
> dziala.. ku mojemu zdziwieniu po dodaniu
> namespace A { namespace B { namespace C {
> .. makra
> }}}
>
> Tez dziala.. jakby wogole nie bylo B i C
> tzn A.B.C.makro nie widac, ale A.makro dalej dziala
No cóż, makra jeszcze w ogóle nie są wrażliwe na namespace'y - wywoływane są
całkowicie 'by name', czyli w dowolnym miejscu możesz napisać samo 'makro' i
zadziała. W makrach w ogóle dużo nie ma jeszcze, bo się Michał przez ostatnie
trzy tygodnie obija... ;-)
> Idac tropem zerknolem co sie stanie jak dodam
> namespace do kolekcji klas, i tu jest tez dziwnie
>
> namespace A {
> ..wariant..
> ..klasy..
> }
>
> a po
>
> namespace A { namespace B {
> ..wariant..
> ..klasy..
> }}
>
> nagle klasa nie widzi typu ktory zostal zdefiniowany
> przez wariant..
To już prawdopodobnie jest bug - spróbuj zgłosić najkrótszy program w którym
takie coś się dzieje.
>
> Odkrylem ze jak funkcja chce oddzielne parametry to mozna
> ja wywolac jako ala(cos,cos), a jak chce krotke parametrow
> to tak samo lub ala((cos,cos)) ... to jakis skrot ?
>
> a makra w tym sie zachowuja dobrze (chyba) jak
> chca krotek to trzeba makro((a,b))
Z tym przekazywaniem parametrów to jest niezła jatka, już jest na ten temat
bug zgłoszony, ale chyba dotyczy czego innego. Niewątpliwie to co opisujesz
jest niespójne. Wg mnie funkcja nie powinna akceptować parametrów i robić z
nich sobie krotkę... powinno być wyraźne rozróżnienie w typie funkcji
a * b -> c i (a*b) -> c
W makrach jest zupełnie osobna procedura na parametry, którą ja robiłem i
wydaje się działać lepiej, mieć więcej features itd. Za to co jest w głównej
części języka nie odpowiadam.
> P.S. Mam nadzieje, ze te moje raporty sie do czegos przydaja,
> nie ma pliku TODO, wiec ciezko sie polapac czego nie ma, a co
> jest zle. Niewazne.... dzieki za wyklarowanie.
Oczywiście. Wielkie dzięki za testy i zgłoszone uwagi. Na ich podstawie albo
uzupełniamy dokumentację, albo dodajemy bug raporty:
http://nemerle.org/bugs
(sam możesz też dodawać zgłoszenia, najlepiej z krótkimi programami
zawierającymi błąd)
Dzięki.
Kamil
More information about the devel-pl
mailing list