Autor: Wojciech Gazda (gazda_at_fema.krakow.pl)
Data: Sun 01 Dec 2002 - 00:34:40 MET
Przemyslaw Dobrowolski napisał(a):
>
> Lech Wiktor Piotrowski pisał:
>
> > ccd.cpp:35: no matching function for call to
>
> Pokaż linijki z tego pliku
> > `CCDMatrix::CCDMatrix (cCCD *)'
> > ccd_matrix.h:88: candidates are: CCDMatrix::CCDMatrix(const CCDMatrix &)
> > ccd_matrix.h:26: CCDMatrix::CCDMatrix(long int,
> > long int, unsign
> > ed char, long int, cCCD *)
>
> Ogólnie z tego co widzę, to masz ciało konstruktora, które nie jest w ogóle
> zadeklarowane.
> Widać, że jest konstruktor CCDMatrix::CCDMatrix (cCCD *), a w deklaracjach
> tylko to co powyżej.
>
> > Czyzby linuxowy gcc wiedzial, ze CCDMatrix::CCDMatrix (cCCD *) moze
> > odwolywac sie do CCDMatrix::CCDMatrix(long int, long int, unsigned char,
> long int,
> > cCCD *) z zapewne jakimis domyslnymi pierwszymi 4 parametrami?
>
> NIE! To jest niezgodne ze standardem. Domyślne parametry możesz mieć jako
> ostatnie, ale nigdy nie wcześniejsze.
>
> Z drugiej strony widać, że w w linii ccd_matrix.h gdzie jest deklaracja
> konstruktora nie ma żadnych parametrów domyślnych.
Zwyczajnie nie doceniacie kreatywnosci Linux-owego GCC :-( Co sadzicie o
takim przykladzie ktory kompiluje sie pod GCC 2.8.cos_tam (a z
-fpermissive takze na nowszych: 2.95.3):
class blee
{ const int stala1 = 100;
int y[stala1];
static int x[stala1];
public:
blee() {};
~blee() {};
};
main()
{ blee X;
return 1;
}
I takie cos sie kompiluje :-((( Po dodaniu innych opcji, nawet bez
warningow...
-- Wojciech Gazda /*******************************************************/ /* Home page - http://www.fema.krakow.pl/~gazda */ /* Asua programmers - http://www.asua.org.pl */ /*******************************************************/
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:38:26 MET DST